javascript - 在 React 中将 props 传递给 this.props.children
问题描述
我在想办法将道具传递给组件的孩子时遇到了一些麻烦。我想做的是有一个组件(ParentComponent),它有一个函数(toggleSuccess()),它改变自己的状态(例如一个称为成功的布尔值)并将该函数作为onClick道具传递给它的所有孩子。理想情况下,我可以将各种组件放入 ParentComponent,它们都可以通过 onClick 属性访问 toggleSuccess()。有没有办法做到这一点,不涉及任何草率的全局变量,或者需要像 redux 这样的中央状态管理?谢谢!
解决方案
事件冒泡,因此您可以捕获父级中的所有单击事件,而不是向下传递处理程序:
class ParentComponent extends React.Component {
//...
toggleSuccess() { /*...*/ }
//...
render() {
const { children } = this.props;
return (
<div onClick={() => this.toggleSuccess()} >
{...children}
</div>
);
}
}
推荐阅读
- android - 即使我从 Firestore 获取数据,为什么我的 RecyclerView 是空的?
- json - json_normalize 到带有嵌套字典/列表组合的熊猫数据框
- .net - 未知深度的递归分量
- javascript - 如何将编译时自定义脚本添加到 React?
- python - 如何循环一个系列并根据原始系列的值创建一个新系列?
- google-data-studio - DataStudio 不对值进行四舍五入
- spring-cloud - 为什么 Spring Cloud Stream Binder for Kinesis 对 Kafka 有依赖?
- sql - 我在 SQL 中遇到一个问题:“不可能是一个界限”
- python - 使用 Celery 在 Quart 中传递应用程序上下文
- excel - 将平均计算添加到下一个空白行