2017-03-09 2 views
1

私は珍しいケースがあります。私はフォームを持っているとしましょう。ユーザーが「保存」ボタンをクリックすると、draft.jsのコンテンツをHTMLに変換するコンポーネントのメソッドをトリガする必要があります。通常、私はちょうど子供にアクセスし、任意のメソッドを呼び出すために参照を使用します。しかし、私のケースでは、ドラフトコンポーネントは反応ルータv4のレンダリングメソッド内にあり、URLマッチパターンのときにのみ表示されます。 これは私が参照React.js refsを使わずに子コンポーネントメソッドを呼び出す方法は?

<Match pattern={'/info'} render={(props)=> <Draft_Editor ref='editor' />} /> 

親コンポーネントはレフリーでこの「エディタ」を持っていない定義するときcuzの障害です。親からメソッドを呼び出すにはどうすればよいですか?

答えて

0

私の場合の解決策が見つかりました。残念なことに、この解決策はrefを使用していますが、他の方法でそれを実行します。これを作る代わりにref='editor'私はこれをしたref={(draft) => this.aboutEditor = draft}。このエディターはthis.aboutEditorとして利用できます。 私はrefを文字列として操作しても機能しませんでした。しかし、それはコールバック関数として正常に動作します。

1

片道は次のとおりです。

1)を使用して親要素のDOMノードを探す:

var parentDOM = ReactDOM.findDOMNode(parentCompInstance); 

2)子要素のDOMノードを検索し、使用:

var childDOM = parentDOM.children[0]; // or something like this, depending on html hierarchy 

3)ザ・コンポーネントインスタンスを反応させて下さいその子のDOMノードの場合は、ここに記載されているソリューションを使用してください:React - get React component from a child DOM element?

+0

ありがとう。私はそのような反応能力について知らなかった –

関連する問題