我正在将来自 Parent 组件的 props 传递到 Child 的状态,但它们不同步。
我尝试了什么:
- 状态更新可能是异步的,我已经使用回调而不是返回对象来处理这一点。
- 对象是通过引用传递的,但我使用的道具是一个字符串。
我正在使用 React 16 和 es6 语法
class Parent extends React.Component {
state = {
isHidden: false
}
render() {
console.log('PROPS from PARENT', this.state.isHidden)
return <div>
<Child isOpen={this.state.isHidden} />
<button onClick={this.toggleModal}>Toggle Modal</button>
</div>
}
toggleModal = () => this.setState(state => ({isHidden: !state.isHidden}))
}
class Child extends React.Component {
state = {
isHidden: this.props.isOpen
}
render() {
console.log('STATE of CHILD:',this.state.isHidden)
return <p hidden={this.state.isHidden}>Hidden:{this.state.isHidden}</p>
}
}
ReactDOM.render(<Parent/>, document.getElementById('app'));
这里是一个codepen PEN - 注意redered元素应该根据状态隐藏(状态取决于父级的道具)