我有以下TextInput组件:
<TextInput value={this.state.inputText}
maxLength={1}
onSubmitEditing={this.textHandler}
onChangeText={(text) => this.setState({inputText: text})} />
当我将输入更改为&#39;&#39;并提交它(在TextInput中)我有以下错误:&#34;失败的道具类型:无效道具&#39;值&#39;类型&#39;对象&#39;提供给&#39; TextInput&#39;&#34;
我尝试删除每个回调,显然,由于“onSubmitEditing&#39;”而引发了错误。
textHandler = (text) => {
if(text == '' || text == '-' ){
text = '0';
}
this.setState({inputText: text});
}
如果只在text是字符串而不是对象的情况下才能调用回调?
答案 0 :(得分:5)
将您的onSubmitEditing
更改为
onSubmitEditing={(event) => this.textHandler( event.nativeEvent.text )}
它是一个函数,你还没有传递给它的值。如果您想通过,可以从event
但您已使用onChangeText
更新inputText
,因此您只需检查是否存在值。
答案 1 :(得分:2)
我也遇到过同样的问题。通常会发生组件或元素的无效或错误的道具类型。
我的案子是放入<TextInput onChangeText={}/>
而不是<TextInput onChange={}/>
。所以我面对了这个问题。请先检查您的道具类型是对还是错。它对我有用。