私はfindDOMNodeはノーではないことを知っています。私はそれを取り除くことができると感じています。リファクタリングする方法DOMNodeを
私は最近、button
タグの代わりにButton
コンポーネントを使用するようにコンポーネントをリファクタリングしました。それは次のようになります。
<Button
ref={(input) => this.toggleZipLink = input}>
Add New Zip
</Button>
と私は小道具を介して他のコンポーネントから呼び出さ私のコンポーネントで機能があります。
shouldClickOutside(e) {
if (findDOMNode(this.toggleZipLink).contains(e.target)) {
return false;
}
return true;
}
私はthis.toggleZipLink
がコンポーネントであるためfindDOMNodeを使用する必要があります。 Button
がbutton
だったら、私はそれを必要としませんでした。
内部のbutton
タグを親に公開する方法はありますか?私はthis.toggleZipLinkにrefsオブジェクトがあることに気づきましたが、空であるようです。参考のために、Buttonはではなく、ステートレス関数コンポーネントなので、refをサポートする必要があります。
ソリューション編集:Button
インサイド
私がref ref={(button) => this.button = button}
を追加しました。その後、親のdivで私はthis.toggleZipLink.button
経由でアクセスすることができます。