道具类型失败:提供给 'TextInput' React Native 的 'object' 类型的道具 'value' 无效

Failed prop type: Invalid prop 'value' of type 'object' supplied to 'TextInput' React Native

我有以下 TextInput 组件:

<TextInput value={this.state.inputText}
  maxLength={1}
  onSubmitEditing={this.textHandler}
  onChangeText={(text) => this.setState({inputText: text})} />

当我将输入更改为“”并提交(在 TextInput 中)时出现以下错误:"Failed prop type: Invalid prop 'value' of type 'object' supplied to 'TextInput'"

我尝试删除每个回调,显然,错误是由于 'onSubmitEditing' 而引发的。

textHandler = (text) => {

  if(text == '' || text == '-' ){
    text = '0';
  }

  this.setState({inputText: text});
}

我怎样才能让回调只在文本是字符串而不是对象的情况下被调用?

将您的 onSubmitEditing 更改为

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

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

但是您使用了 onChangeText,它将更新 inputText,所以您只需要检查值是否存在。

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

我的情况是 <TextInput onChangeText={}/> 而不是 <TextInput onChange={}/>。所以我遇到了这个问题。请先检查您的道具类型是否正确。它对我有用。