我想创建一个只有一个事件的组件,并将它放置在任何给定级别(子级或孙级或更深级)的祖先内,并且当事件触发此祖先的父级时将采取行动例如alert(“我是”+ parent.name +“,我的一个前辈做了某事”))。 想象一个居民拒绝死亡并拥有一百万前辈的老人民住宅,并且居民每次都会通知彼此的一个祖先有一个生日。 因为我明白观察者模式是在反应中发生的,所以最简单的做法是什么?并且可以在创建子项时不手动传递父对象来完成?我知道如何做到这一点父母对父母沟通的反应
0
A
回答
0
一种方式是通过一个函数下来,做一些父
class Parent extends React.Component {
constructor(props) {
super(props)
this.doSomethingInParent = this.doSomethingInParent.bind(this);
}
doSomethingInParent() {
console.log('running in parent');
}
render() {
return <Child parentsFunction={this.doSomethingInParent} />
}
}
现在,如果你的孩子中跑parentsFunction的“家谱”组件,你会看到doSomethingInParent中的console.log。如果你想深入一些,你将不得不通过道具来传递这些功能,这些道具可能会在更复杂的应用程序中变得乏味。这就是为什么redux/flux很受欢迎的原因,因为它可以让你管理状态/调度动作并避免长时间的回调函数链。
0
溶液使用getChildContext发现,在讨论后childContextTypes: check if a component is a child or ancestor of another component ReactJS 见实施例(2种溶液):https://jsfiddle.net/shaibam/d0q5mwc4/33/。
contextTypes: {
notifyChange: React.PropTypes.func
}.....
相关问题
- 1. 与父母网站沟通
- 2. 与父母组件沟通
- 3. Less CSS - 父母的反向父母
- 4. 父母与子女之间的沟通
- 5. 父母的父母的父母
- 6. 叉子父母子女沟通
- 7. 通过比父母小的父母对齐的文本对齐
- 8. 布置父母的父母
- 9. 父母双亲父母对象div
- 10. Angular - 无证的孩子对父母的沟通?
- 11. 父母和子女对象之间的双向沟通
- 12. 对父母的UIViewController
- 13. 角2,孩子对父母和回到孩子沟通
- 14. jQuery的父母()和父母()。父母()只看到一个层次?
- 15. LINQ组由父母和父母的父母
- 16. 绝对视图位置重力陪着父母,而不是父母的父母
- 17. 获取div的父母的父母
- 18. 绝对父母对祖父母的位置元素
- 19. 使用JQuery获得父母的父母
- 20. SASS - 父母的参考父母
- 21. 覆盖父母的父母在PHP
- 22. 验证祖父母:两个父母有同一个父母吗?
- 23. 反应:嵌套onclick也触发父母
- 24. Rails 3通过其他父母找到孩子的祖父母
- 25. linq:祖父母 - 父母 - 子女查询
- 26. 父母和祖父母div类检查
- 27. 作用域父母/祖父母
- 28. 绑定到父母和祖父母?
- 29. 中心与父母父母的下拉菜单中心对齐
- 30. 将文字与父母的父母对齐
跑过功能确实tedius,并且用焊剂的问题/ Redux的是,我不能找出如何特定听众适用于电子元件的封闭基团,如果ansestor发出了一个信息如何可以只注册其家长倾听。据我所知,所有的父母都会在这里传达信息。 –
我只能使用“contains”和React.findDOMnode来做到这一点。 https://jsfiddle.net/shaibam/d0q5mwc4/33/ –