Ad
How To Update React Component State Based On Props
How can I force a react component to update state whenever props change?
I have been using the method:
componentWillReceiveProps(nextProps){
this.setState({key:nextProps});
console.log(this.state);
}
The console shows me that nextProps is the defined value, but this.state.key remains undefined.
Thanks!
Ad
Answer
The console log this.state shows undefined because setState is asynchronous. Hence when you perform setState it does not update state immediately and that's why console log doesn't show updated state.
You should do as follows:
componentWillReceiveProps(nextProps){
this.setState({key:nextProps}, () => {
console.log(this.state);
});
}
Here when setState will take place the callback defined as a second parameter gets called and then we have updated state.
Ad
source: stackoverflow.com
Related Questions
- → How to update data attribute on Ajax complete
- → October CMS - Radio Button Ajax Click Twice in a Row Causes Content to disappear
- → Octobercms Component Unique id (Twig & Javascript)
- → Passing a JS var from AJAX response to Twig
- → Laravel {!! Form::open() !!} doesn't work within AngularJS
- → DropzoneJS & Laravel - Output form validation errors
- → Import statement and Babel
- → Uncaught TypeError: Cannot read property '__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED' of undefined
- → React-router: Passing props to children
- → ListView.DataSource looping data for React Native
- → Can't test submit handler in React component
- → React + Flux - How to avoid global variable
- → Webpack, React & Babel, not rendering DOM
Ad