16之前
componentWillReveiveProps
来监听props的变换
16之后
getDerivedStateFromProps
进行props的监听,
getDerivedStateFromProps
可以返回null或者一个对象,
如果是对象,则会更新state
======================================
componentWillReceiveProps //已经被废弃
componentDidUpdate //推荐使用
getDerivedStateFromProps// 推荐使用
componentDidUpdate(prevProps){
if(prevProps.item.width!==this.state.width){
this.setState({
width:prevProps.item.width,
})
}
}
//如果条件不存在必须要返回null
static getDerivedStateFromProps(props, current_state) {
if(props.item.width!==current_state.width){
return {
width:props.item.width,
}
}
return null
}
============================
// 监听state状态改变
store.subscribe(() => {
console.log('state状态改变了,新状态如下')
console.log(store.getState())
})
export default connect(
// 就是公共容器中的state,
,就可以通过this.props.music拿到该对象
state => ({ music: state.music }),
)(BgMusic)
网友评论