具有这样声明的组件:
<MyComp value={this.state.form1.val1} />
在MyComp componentDidUpdate内部,我想知道state.form1.val1
的先前值是什么
(通过先前的值,我指的是先前状态对象的val1
属性的值)
export default class MyComp extends React.Component {
...
componentDidUpdate(prevProps, prevState) {
// compare current value of val1 with previous value of val1
// prevState is null here becuase MyComp has no state, its parent has state
}
}
答案 0 :(得分:2)
您有2种选择:
componentDidUpdate
中发挥优势。componentDidUpdate
中捕获
父组件
<MyChildComponent myProp={this.state.myValue} />
子组件
componentDidUpdate(prevProps, prevState) {
console.log(prevProps.myProp)
}
请注意,当状态改变或收到新的道具时,React的组件会触发componentDidUpdate
。
答案 1 :(得分:1)
父组件state.form1.val1
的先前值将是prevProps.value
的{{1}}内的componentDidUpdate
。当前值将是MyComp
中的this.props.value
。
您不能直接从子组件内部访问父组件的状态,只能访问显式传递的东西。