A call to setState
isn’t synchronous. It creates a “pending state transition.” (See here for more details). You should explicitly pass the new input
value as part of the event being raised (like to handleSubmit
in your example).
See this example.
handleSubmit: function(txt) {
this.props.onChange(txt);
},
handleChange: function(e) {
var value = e.target.value;
this.setState({message: value});
this.handleSubmit(value);
},