ライブラリは、具体的にそのコンポーネントの子どもたちに小道具を渡す方法を提供しない限り、それを行うには、他の方法はありません。反応成分は、デザインによって少し「不透明」なので、内部状態や子供たちの周りにはいられません。したがって、この場合、実際にははに対応するためにライブラリのコードを編集する必要があります。
しかしそれは行うには、そのような威圧的なものではありません。あなたのイベントハンドラを小道具としてライブラリのコンポーネントに渡してから、ライブラリ内で<input>
要素がレンダリングされている場所を見つけて、いつものようにイベントハンドラを与えます。私は同様の方法で多くのReactライブラリを編集しなければなりませんでした。
編集:実は、私はあなたが反応し、プレーンなJavaScriptを使用してinput
要素に直接イベントハンドラを追加するだけでバイパスできることを追加する必要があります。例えば、ライブラリコンポーネントの親のcomponentDidMount
とcomponentWillUnmount
機能であなたはaddEventListener
または類似を使用して、それぞれ、イベントハンドラを追加し、削除します。少しより多くの仕事と反応するの内側にあなたが同じことを行うことができますしかし、それは、独自の機能を反応させるために回避策を一緒にハックする一般悪い考えをです。また、リスナーを追加する要素を正確に特定することはかなり難しいかもしれません。