我在想办法将道具传递给组件的子代时遇到了麻烦。我想做的是拥有一个组件(ParentComponent),该组件具有一个函数(toggleSuccess()),该函数会更改其自身的状态(例如称为成功的布尔值),并将该函数作为onClick属性传递给其所有子级。理想情况下,我可以将各种组件放入ParentComponent,它们都将通过其onClick道具获得对toggleSuccess()的访问权。有没有一种方法可以做到这一点,而又不涉及任何草率的全局变量,也不需要某些中央状态管理(如redux)?谢谢!
答案 0 :(得分:0)
事件冒泡,因此您只需在父级中捕获所有点击事件,而无需将处理程序传递给下层
class ParentComponent extends React.Component {
//...
toggleSuccess() { /*...*/ }
//...
render() {
const { children } = this.props;
return (
<div onClick={() => this.toggleSuccess()} >
{...children}
</div>
);
}
}