作用
为了替换 componentWillReceiveProps,让组件在 props 变化时更新 state。
getDerivedStateFromProps 会在调用 render 方法之前调用,即在渲染 DOM 元素之前会调用,并且在初始挂载及后续更新时都会被调用。
class Header extends React.Component {
constructor(props) {
super(props);
this.state = {favoritesite: "runoob"};
}
//拿到变化后的props和state
static getDerivedStateFromProps(props, state) {
return {favoritesite: props.favsite };
}
render() {
return (
<h1>我喜欢的网站是 {this.state.favoritesite}</h1>
);
}
}
ReactDOM.render(<Header favsite="Google"/>, document.getElementById('root'));
应用场景
比如在点击一个列表 ,想要在其他组件实时拿到点击的值,那么可以在点击的时候将那个值放到redux仓库里,在需要使用的地方调用这个函数,实时拿出点击的那个列表的值