Очистить состояние при удалении текста TextInput

#react-native #textinput

#react-native #textinput

Вопрос:

Я пытаюсь очистить строку, которую я ранее установил в состояние, когда я очищаю TextInput. Я пробовал приведенный ниже код, но он не очищает строку в состоянии. Что я делаю не так, пожалуйста?

 <TextInput
    ref={(el) => this.myInput = el}
    onChangeText={this.onChangeText}
    text={this.state.mytext}
    placeholder='Enter Text'
    placeholderTextColor='#999'
    keyboardType='numeric'
    returnKeyType='next'
/>

onChangeText = (t) => {
    this.props.setData('mytext', t)
    if(t == ''){
        this.setState({
            newText: ''
        })
    }
}
  

Ответ №1:

Вы не передаете value свойство TextInput . В вашем случае TextInput не знает, какое значение искать.

  <TextInput
     value={this.state.yourValue}
     onChangeText={yourValue => this.setState({ yourValue }) }
 /> 
  

Ответ №2:

Я думаю, проблема в prop. Не совсем уверен, что в text в TextInput вызывается prop. Также, если может потребоваться использовать setState для изменения без проверки.

 <TextInput
    ref={(el) => this.myInput = el}
    onChangeText={this.onChangeText}
    value={this.state.mytext}
    placeholder='Enter Text'
    placeholderTextColor='#999'
    keyboardType='numeric'
    returnKeyType='next'
/>

onChangeText = (t) => {
    this.props.setData('mytext', t);
    this.setState({
       newText: t
    });
}