我在密码输入中遇到onChangeText的问题。我想要做的详细说明:我想最初禁用提交按钮,当两个输入字段都填满后再启用提交按钮。如果您有任何其他方法可以解决此问题,请分享。
<InputGroup style={styles.inputBox}>
<Icon name='ios-person' style={{color: 'white'}}/>
<Input placeholder='Email' style={styles.input}
placeholderTextColor='rgba(255, 255, 255, 0.6)'
value={this.state.username}
onChangeText={(text) => this.setState({username: text})}
onChange={this.onInputChange} />
</InputGroup>
<InputGroup style={styles.inputBox}>
<Icon name='ios-unlock' style={{color: 'white'}}/>
<Input placeholder='Password' style={styles.input}
secureTextEntry={true}
placeholderTextColor='rgba(255, 255, 255, 0.6)'
value={this.state.password}
onChangeText={(text) => this.setState({password: text})}
onChange={this.onInputChange} />
</InputGroup>
<Button block bordered success style={styles.submitButton} onPress={this.onSignIn} disabled={this.state.submitButtonFlag}>
Sign In
</Button>
onChangeInput的代码:
onInputChange() {
if (this.state.username != null && this.state.password != null) {
console.log("this.state.submitButtonFlag: ");
this.setState = {submitButtonFlag: false};
console.log(this.state.submitButtonFlag);
}
}
答案 0 :(得分:1)
两个错误:
引用并更正此范围:onChange={() => this.onInputChange()} />
setState是一个函数:this.setState({submitButtonFlag: false});
答案 1 :(得分:0)
您需要绑定您要调用的方法,或者使用诸如 @zvona 所述的回调
第一种方式
onChange={this.onInputChange.bind(this)}
第二种方式
onChange={() => this.onInputChange()}