在React中将道具传递给this.props.children

时间:2019-03-05 21:13:11

标签: javascript reactjs

我在想办法将道具传递给组件的子代时遇到了麻烦。我想做的是拥有一个组件(ParentComponent),该组件具有一个函数(toggleSuccess()),该函数会更改其自身的状态(例如称为成功的布尔值),并将该函数作为onClick属性传递给其所有子级。理想情况下,我可以将各种组件放入ParentComponent,它们都将通过其onClick道具获得对toggleSuccess()的访问权。有没有一种方法可以做到这一点,而又不涉及任何草率的全局变量,也不需要某些中央状态管理(如redux)?谢谢!

1 个答案:

答案 0 :(得分:0)

事件冒泡,因此您只需在父级中捕获所有点击事件,而无需将处理程序传递给下层

 class ParentComponent extends React.Component {
  //...
  toggleSuccess() { /*...*/ }
  //...
  render() {
    const { children } = this.props;
    return (
      <div onClick={() => this.toggleSuccess()} >
       {...children}
      </div>
     );
   }
 }