Search code examples
javascriptreact-nativetextinput

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


I have the following TextInput Component:

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

When I change the input to '' and submit it (in the TextInput) I have the following error: "Failed prop type: Invalid prop 'value' of type 'object' supplied to 'TextInput'"

I tried deleting each callback and apparently, the error is throwed because of the 'onSubmitEditing'.

textHandler = (text) => {

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

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

How can I make the callback to be called only where text is a string and not an object?


Solution

  • change your onSubmitEditing to

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

    Its a function, and you haven't passed value to it. If you want to pass you can get it from event

    But you have used onChangeText which will update inputText so you just need to check value exists or not.