2016-09-29 5 views
1

Привет в моем componentWillMount я поставил свои состояния, как этотTextInput отображает значение реагируют родной

componentWillMount(){ 
    this.timeSheetData().then((timeSheetResponse)=>{ 
     this.setState({comments:timeSheetResponse.comments}); 
     this.setState({spentHours:parseInt(timeSheetResponse.hours)}); 
     alert(this.state.spentHours); 

    }); 
}); 

На мой взгляд

Я имею TextInput как это. Я не могу отобразить значение на TextInput но я могу отобразить значение по тексту я не знаю, почему это происходит

<TextInput keyboardType='numeric' onChangeText={(spentHours) =>this.setState({spentHours})} 
        value={this.state.spentHours} /> 
+0

потраченные часы должны быть ключом. когда вы устанавливаете состояние, вы должны установить его как this.setState ({проведенноеHours: проведенноеHours}) –

+0

@JanFranzPalngipang это просто сокращенно в es6 - посмотрите здесь: http://es6-features.org/#PropertyShorthand. Если имя var совпадает с ключом, это можно использовать следующим образом: – David

+0

Я получил ответ. Мне нужно использовать строку для отображения значения в TextInput – Vikiesakki

ответ

0

значения входных должны быть строками, так что вы либо должны удалить parseInt в методе componentWillMount :

this.setState({ spentHours: timeSheetResponse.hours });

или в шаблоне вам необходимо преобразовать входное значение в строку с toString():

<TextInput 
    keyboardType='numeric' 
    onChangeText={spentHours => this.setState({ spentHours })} 
    value={this.state.spentHours.toString()} 
/> 
+0

Спасибо, что его работа прекрасна .. – Vikiesakki

Смежные вопросы