React js从父组件更改子组件的状态
我有两个组件: ,我想从中更改子组件的状态:
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}/>
);
}
}
我需要从父组件更改子组件的 状态,还是单击父组件中的按钮时从父组件调用子组件的 ?
回答:
状态应在父组件中进行管理。您可以open
通过添加属性将值传输到子组件。
class ParentComponent extends Component { constructor(props) {
super(props);
this.state = {
open: false
};
this.toggleChildMenu = this.toggleChildMenu.bind(this);
}
toggleChildMenu() {
this.setState(state => ({
open: !state.open
}));
}
render() {
return (
<div>
<button onClick={this.toggleChildMenu}>
Toggle Menu from Parent
</button>
<ChildComponent open={this.state.open} />
</div>
);
}
}
class ChildComponent extends Component {
render() {
return (
<Drawer open={this.props.open}/>
);
}
}
以上是 React js从父组件更改子组件的状态 的全部内容, 来源链接: utcz.com/qa/431301.html