React-native TextInput值接收对象,但是我清楚地将其传递给字符串吗?

时间:2018-12-04 20:16:33

标签: javascript react-native textinput

state={username:"",password:""}

...

<TextInput style={styles.inputStyle}
    placeholder='email123@mail.com' 
    autoCorrect={false}
    value={this.state.username}
    onChange={text =>{ 
        this.setState({username:text});
        console.log(this.state.username);
    }}
/>

我得到的错误是值正在传递给对象,它引用了textInput开始的那一行,但是我不知道这是怎么可能的

样式就是:

let styles ={
    titleStyle:{
      fontWeight:'bold',
      fontSize: 20,
      textAlign:'center'
    },
    inputStyle:{
      backgroundColor:'#d4d4d4'
    }
}

在渲染器内部。

3 个答案:

答案 0 :(得分:1)

onChange将返回一个对象,如果您使用onChangeText,它将直接返回该值。

<TextInput 
    style={styles.inputStyle}
    placeholder='email123@mail.com' 
    autoCorrect={false}
    value={this.state.username}
    onChangeText={text => this.setState({ username: text })}
/>

或者,如果您想使用onChange,可以按照以下方式进行操作:

<TextInput 
    style={styles.inputStyle}
    placeholder='email123@mail.com' 
    autoCorrect={false}
    value={this.state.username}
    onChange={event => this.setState({ username: event.target.value })}
/>

阅读React Native - Difference between onChange vs onChangeText of TextInput

答案 1 :(得分:0)

使用onChangeText代替onChange。

答案 2 :(得分:0)

尝试以下代码:                  onChange={this.onUserChange}

onUserChange = (e, {value}) => { if (value) this.setState({username:value}) }