Ваша проблема в том, что вы не обновляете значение, используемое TextInput
. Вы устанавливаете значение в состоянии как newValue
, однако вы пытаетесь использовать его в своем компоненте как this.state.myText
.
Таким образом, основываясь на комментариях ниже, кажется, что вы хотите установить значение newText
в пустую строку, когда myText
- пустая строка.
Во-первых, мы должны использовать правильную опору value
для отображения правильного значения строки.
Во-вторых, мы должны обработать изменение состояния в функции onChangeText
. Обратите внимание, что в рефакторированном onChangeText
мы проверяем, чтобы значение переданного ему текста было равно пустой строке. Если это так, мы обновляем значения newText
и myText
, в противном случае, если это не пустая строка, мы просто обновляем значение myText
, чтобы отображаемое в TextInput
значение было правильным.
<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)
if(t === ''){
this.setState({ newText: '', myText: '' })
} else {
this.setState({ myText: t})
}
}