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

回到顶部