So che questa risposta arriva un po 'tardi, ma recentemente ho affrontato un problema simile. Volevo attivare un evento su un componente nidificato. Avevo un elenco con widget di tipo radio e casella di controllo (erano div che si comportavano come caselle di controllo e / o pulsanti di opzione) e in qualche altro punto dell'applicazione, se qualcuno chiudeva una casella degli strumenti, dovevo deselezionarne una.
Ho trovato una soluzione piuttosto semplice, non sono sicuro che questa sia la migliore pratica ma funziona.
var event = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': false
});
var node = document.getElementById('nodeMyComponentsEventIsConnectedTo');
node.dispatchEvent(event);
Ciò ha attivato l'evento click sul domNode e il mio gestore collegato tramite react è stato effettivamente chiamato, quindi si comporta come mi sarei aspettato se qualcuno avesse cliccato sull'elemento. Non ho testato onChange ma dovrebbe funzionare, e non sono sicuro di come andrà bene nelle versioni molto vecchie di IE, ma credo che MouseEvent sia supportato almeno in IE9 e versioni successive.
Alla fine mi sono allontanato da questo per il mio caso d'uso particolare perché il mio componente era molto piccolo (solo una parte della mia applicazione utilizzata reagisce poiché lo sto ancora imparando) e potevo ottenere la stessa cosa in un altro modo senza ottenere riferimenti ai nodi dom.
AGGIORNARE:
Come altri hanno affermato nei commenti, è meglio usare this.refs.refname
per ottenere un riferimento a un nodo dom. In questo caso, refname è il ref che hai collegato al tuo componente tramite <MyComponent ref='refname' />
.