当我清除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: ''
})
}
}
答案 0 :(得分:0)
您没有将value
属性传递给TextInput
。在您的情况下,TextInput
不知道要寻找哪个值。
<TextInput
value={this.state.yourValue}
onChangeText={yourValue => this.setState({ yourValue }) }
/>
答案 1 :(得分:0)
嗯,问题是我猜道具。不确定text
中是否有一个名为TextInput
的道具。
另外,如果可能想使用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
});
}
答案 2 :(得分:0)
您的问题是您没有更新TextInput
使用的值。您正在将状态值设置为newValue
,但尝试在组件中将其用作this.state.myText
。
因此,根据以下评论,当newText
为空字符串时,您似乎想将myText
的值设置为空字符串。
首先,我们应该使用正确的道具value
来显示字符串的正确值。
第二,我们应该在onChangeText
函数中处理状态的更改。注意,在重构的onChangeText
中,我们检查以确保传递给它的文本的值等于一个空字符串。如果是,那么我们将更新newText
和myText
的值,否则,如果它不是一个空字符串,则只需更新myText
的值,以使该值显示在{{ 1}}是正确的。
TextInput