Реактивный объект TextInput, получающий значение, но я явно передаю ему строку? - PullRequest
0 голосов
/ 04 декабря 2018
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 голосов
/ 04 декабря 2018

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 })}
/>

Чтение Реагирует на собственный - Разница между onChange и onChangeText TextInput

0 голосов
/ 05 декабря 2018

Попробуйте этот код: onChange={this.onUserChange}

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

0 голосов
/ 04 декабря 2018

Используйте onChangeText вместо onChange.

...