Can anyone explain the ‘rule of thumb’ for the this.setState parameter in React component (Create a Controlled Input):
handleChange(event) {
this.setState({
input: event.target.value
})
}
When should we do like above, and when should we write as a callback like below:
increment() {
this.setState((state, props) => {
return state.count += 1;
})
}
Thank you!
Tell us what’s happening:
Describe your issue in detail here.
**Your code so far**
class ControlledInput extends React.Component {
constructor(props) {
super(props);
this.state = {
input: ''
};
// Change code below this line
this.handleChange = this.handleChange.bind(this);
// Change code above this line
}
// Change code below this line
handleChange(event) {
this.setState({
input: event.target.value
})
}
// Change code above this line
render() {
return (
<div>
{ /* Change code below this line */}
<input type="text" value={this.state.input} onChange={this.handleChange} />
{ /* Change code above this line */}
<h4>Controlled Input:</h4>
<p>{this.state.input}</p>
</div>
);
}
};
**Your browser information:**
User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36
Challenge: Create a Controlled Input
Link to the challenge: