0

1つのイベントだけを持つコンポーネントを作成し、それを任意のレベル(子または孫または深い)の祖先に配置し、イベントがトリガーすると、この祖先の親が動作しますalert( "私は" + parent.name + "私の祖先の一人が何かをやった"))。 老人ホームの想像は、居住者が死ぬことを拒否し、百万の祖先を抱えていて、祖先が誕生日を持つたびに住民が互いに知らせる。 私は観察者のパターンが反応していることを理解しているので、これを行う最も巧妙な方法は何でしょうか?子を作成するときに親オブジェクトを手動で渡すことなく行うことができますか?私はこれを行う方法を知っているアソシエートと親のコミュニケーションを行う

答えて

0

一つの方法は、あなたが子供の中にparentsFunctionを実行した場合、親今

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} /> 
 
    } 
 
}

で何かをする「家系」ダウン機能を渡すことですコンポーネントでは、doSomethingInParent内にconsole.logが表示されます。あなたがもっと深くしたいのであれば、より複雑なアプリケーションでは面倒な小道具を介してその機能を継続的に伝える必要があります。これは、あなたが状態/ディスパッチアクションを管理し、コールバック関数の長い連鎖を避けることができるので、還元/流束が普及している理由です。

+0

関数を渡すことは確かtediusであり、フラックス/ Reduxのに伴う問題は、私はansestor iは唯一の登録方法についてのメッセージを送信する場合、コンポーネントの閉じたグループに特定のリスナーを適用する方法を理解couldntのことですその親は聞く。私が理解していることから、両親はすべてここにメッセージをします。 –

+0

"contains"とReact.findDOMnodeを使ってしかできませんでした。 https://jsfiddle.net/shaibam/d0q5mwc4/33/ –

関連する問題