2016-09-29 27 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({spentHours:spentHours}) –

+0

@JanFranzPalngipang這只是在es6中的速記 - 看看這裏:http://es6-features.org/#PropertyShorthand。如果var名稱與密鑰相同,可以這樣使用:) – David

+0

我得到了答案。我必須使用字符串來顯示TextInput中的值 – Vikiesakki

回答

0

的輸入值必須是字符串,所以你要麼需要在你的componentWillMount方法去除parseInt

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

或在您的模板,你需要輸入值轉換爲字符串toString()

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

感謝它的工作很好.. – Vikiesakki