2015-12-22 74 views
2

我想退還密碼和複選框狀態的用戶名&的輸入值。我在Stackoverflow上發現了這個相關問題。但是,當嘗試實現這讓錯誤在React本機中獲取TextInput值和複選框狀態

「空」是不是(評估 「this.state.username」)的對象

誰能幫助我以檢索輸入值和複選框狀態我是新來的陣營本地

代碼:

var CheckBox = require('react-native-checkbox'); 
var Button = require('react-native-button'); 

var reactnative = React.createClass({ 

render: function() { 
return (
    <View style={styles.container}> 

    <Text style={styles.signin}>Sign In</Text> 

    <TextInput style={styles.logininput} ref= "username" onChangeText={(event) => this.setState({username:event.nativeEvent.text})} value={this.state.username}/> 

    <TextInput style={styles.logininput} value="Password"/> 

    <CheckBox label='Remeber Me' checked = {false} onClick={this._CheckBoxState}/> 

    <Button style={styles.loginButton} onPress={this._handlePress.bind(this)}> 
     Login 
    </Button> 

    </View> 
); 
}, 

_handlePress(event) { 
    //Get TextInput value 
    var username= this.state.username; 
    alert(username); 
    }, 

_CheckBoxState(event){ 
    //want to change the state from true to false or vice-versa 

    } 
}); 
+0

你在哪裏初始化初始狀態? –

回答

4

你可能已經錯過了渲染前初始化初始狀態的功能。

... 
getInitialState: function() { 
    return {username: ''}; 
}, 
render: function() { 
    .... 
} 

現在this.state.username應該是可訪問的。

+0

謝謝,這解決了我退休輸入值的問題。 :) 你能幫我取得複選框狀態? –

+0

與任何輸入相同的原則。您可以在複選框上應用onChange事件。並將其連接到當前複選框狀態被取消的功能。因此,請設置狀態 - > checkboxIsSelected:!this.state.checkBoxIsSelected。當然你也必須添加checkboxIsSelected到你的初始狀態 –