Sto lavorando per aggiungere componenti React a un progetto esistente con un sacco di codice legacy.Come posso inviare manualmente eventi di sintesi React?
Un problema che sto incontrando è che React allega i suoi gestori per la delega degli eventi sull'oggetto document
. Sfortunatamente per me, gran parte del nostro codice legacy intercetta gli eventi di clic e chiama event.stopPropagation
prima che raggiungano l'oggetto documento (ad esempio per gestire i menu a discesa e le modali degli strumenti che si chiudono quando si fa clic all'esterno di essi).
Quando l'evento click viene intercettato, l'evento non viene propagato al gestore eventi di livello documento di React e l'evento non viene delegato ai miei componenti React (anche se gli elementi DOM effettivi per i componenti si trovano sopra intercettare l'elemento nel DOM e ricevere prima gli eventi effettivi non delegati).
Quindi ... domanda: esiste un modo per attivare manualmente l'evento sintetico React per un determinato evento senza che venga colpito il gestore di eventi a livello di documento di React? O c'è un modo per spostare o duplicare quel singolo gestore di eventi da qualche altra parte?
Come ripiego, sto considerando di utilizzare jQuery per aggiungere eventi dopo il montaggio del componente React, ma preferirei non farlo se possibile.