我想创建一个只有一个事件的组件,并将它放置在任何给定级别(子级或孙级或更深级)的祖先内,并且当事件触发此祖先的父级时将采取行动例如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. 布置父母的父母
- 4. 父母双亲父母对象div
- 5. Angular - 无证的孩子对父母的沟通?
- 6. 角2,孩子对父母和回到孩子沟通
- 7. LINQ组由父母和父母的父母
- 8. jQuery的父母()和父母()。父母()只看到一个层次?
- 9. 绝对视图位置重力陪着父母,而不是父母的父母
- 10. 获取div的父母的父母
- 11. 绝对父母对祖父母的位置元素
- 12. 覆盖父母的父母在PHP
- 13. SASS - 父母的参考父母
- 14. 使用JQuery获得父母的父母
- 15. 反应:嵌套onclick也触发父母
- 16. 父母和祖父母div类检查
- 17. linq:祖父母 - 父母 - 子女查询
- 18. 作用域父母/祖父母
- 19. 父母的绝对孩子不正确填写父母背景
- 20. 从父母到子女iFrame发布与postMessage的沟通
- 21. removeView()对儿童的父母
- 22. jQuery的导航 - 更改输入的父母 - 父 - 母 - 父 - 兄弟
- 23. NHibernate,通过父母添加孩子vs设置对孩子父母的引用
- 24. 根据父母父母的父母尺寸设置宽度和高度Android Studio
- 25. 通过地理位置从父母到孩子的反应
- 26. 孩子和父母对象
- 27. 对象与父母在Java
- 28. renice对父母renice孩子?
- 29. Astar父母,getpath
- 30. inherited_resources - 去父母
跑过功能确实tedius,并且用焊剂的问题/ Redux的是,我不能找出如何特定听众适用于电子元件的封闭基团,如果ansestor发出了一个信息如何可以只注册其家长倾听。据我所知,所有的父母都会在这里传达信息。 –
我只能使用“contains”和React.findDOMnode来做到这一点。 https://jsfiddle.net/shaibam/d0q5mwc4/33/ –