支柱类型失败:无效道具价值'类型'对象'提供给' TextInput' React Native

时间:2017-07-18 08:54:14

标签: javascript react-native textinput

我有以下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是字符串而不是对象的情况下才能调用回调?

2 个答案:

答案 0 :(得分:5)

将您的onSubmitEditing更改为

onSubmitEditing={(event) => this.textHandler( event.nativeEvent.text )}

它是一个函数,你还没有传递给它的值。如果您想通过,可以从event

获取

但您已使用onChangeText更新inputText,因此您只需检查是否存在值。

答案 1 :(得分:2)

我也遇到过同样的问题。通常会发生组件或元素的无效或错误的道具类型。

我的案子是放入<TextInput onChangeText={}/>而不是<TextInput onChange={}/>。所以我面对了这个问题。请先检查您的道具类型是对还是错。它对我有用。