我有两个组件: 父组件,我想从中更改子组件的状态:
class ParentComponent extends Component {
toggleChildMenu() {
?????????
}
render() {
return (
<div>
<button onClick={toggleChildMenu.bind(this)}>
Toggle Menu from Parent
</button>
<ChildComponent />
</div>
);
}
}
和子组件:
class ChildComponent extends Component {
constructor(props) {
super(props);
this.state = {
open: false;
}
}
toggleMenu() {
this.setState({
open: !this.state.open
});
}
render() {
return (
<Drawer open={this.state.open}/>
);
}
}
我需要从父组件更改子组件的打开状态,还是单击父组件中的按钮时从父组件调用子组件的toggleMenu()?
您可以从父级发送道具并在子组件中使用它,以便将子状态的更改基于已发送的道具更改,并且可以通过在子组件中使用getDerivedStateFromProps来处理。