2016-09-24 6 views
1

未知数の子と祖先を持つReactJSコンポーネントを作成しています。親コンポーネントがそれを知るべき先祖の1つ。私の最初のアプローチはreduxを使用してreduxアクションで子コンポーネントを送信し、次にメインの親コンポーネントに警告を送信し、送信されたComponetntがその祖先の1つであるかどうかをチェックします。 しかし、親のreactJSコンポーネントは、他のコンポーネントがその祖先の1つであるかどうかをある程度知ることができますか?親がコンテキストで関数を定義することができますコンポーネントが他のコンポーネントの子または祖先であるかどうかを調べるReactJS

+0

唯一の方法React.findDOMelementでjs/DOMelemt 'contains'を使うことです。 https://jsfiddle.net/shaibam/d0q5mwc4/33/ –

答えて

1

、子供たちは、この関数を呼び出すことができます。

親:

childContextTypes: { 
    notifyChange: React.PropTypes.func.isRequired 
}, 

getChildContext() { 
    return { 
     notifyChange: (...args) => this.handleChange(...args) 
    } 
}, 

handleChange (arg) { 
    console.log(arg + ' bar!') 
}, 

子供:私はこれが行わ見ることができます

contextTypes: { 
    notifyChange: React.PropTypes.func 
}, 

handleSomething() { 
    const { notifyChange } = this.context 

    // safety check if component is used elsewhere 
    if (notifyChange) notifyChange('foo!') 
}, 
+0

ありがとう、私はあなたのソリューションを含めるfilddleを更新しました。 https://jsfiddle.net/shaibam/d0q5mwc4/35/ –

関連する問題