2016-10-03 33 views
0

我在密码输入中遇到了onChangeText问题。我想要做什么的详细说明:我想最初禁用提交按钮,当两个输入字段填充后启用提交按钮。如果您有其他方法可以解决此问题,请分享。对于onChangeInput未处理的JS异常:_this2.setState不是函数

<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> 

代码:

onInputChange() { 

    if (this.state.username != null && this.state.password != null) { 
    console.log("this.state.submitButtonFlag: "); 
    this.setState = {submitButtonFlag: false}; 
    console.log(this.state.submitButtonFlag); 
    } 

} 

回答

1

两个错误:

  1. 参考与正确此范围:onChange={() => this.onInputChange()} />

  2. 的setState是一个函数:this.setState({submitButtonFlag: false});

+0

感谢zvona为您的解决方案,我犯了第二点感谢清除它的错误。 –

+0

1号胖箭头功能可以做到这一点。 –