私は多くのレガシーコードを持つ既存のプロジェクトにReactコンポーネントを追加しようとしています。React Synthetic Eventsを手動でディスパッチするにはどうしたらいいですか?
私が遭遇する1つの問題は、document
オブジェクトのイベント委任のためにハンドラーをアタッチすることです。残念ながら、従来のコードの多くは、クリックイベントを傍受してevent.stopPropagation
を呼び出す前にドキュメントオブジェクトに(たとえば、クリックしたときに閉じるドロップダウンやモーダルを実装するなどの)処理するために呼び出されます。
clickイベントがインターセプトされると、イベントはReactのドキュメントレベルのイベントハンドラに伝播されず、イベントは自分のReactコンポーネントに委譲されません(コンポーネントの実際のDOM要素がDOMのインターセプト・エレメントを受け取り、実際に委譲されていないイベントを最初に受信します)。
だから...質問:Reactの合成イベントを、Reactのドキュメントレベルのイベントハンドラに当たっていなくても、手動でトリガする方法はありますか?または、単一のイベントハンドラを別の場所に移動または複製する方法はありますか?
私はリアクションコンポーネントのマウント後にjQueryを使用してイベントを追加することを検討していますが、可能であればそれをやりたいとは思いません。