我想創建一個只有一個事件的組件,並將它放置在任何給定級別(子級或孫級或更深級)的祖先內,並且當事件觸發此祖先的父級時將採取行動例如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/ –