L'esposizione di this
di un componente React non è una best practice. Mentre funziona, ci sono modi più desiderabili per svolgere le stesse attività. Se si tiene conto di un'istanza di this
, il riferimento potrebbe diventare obsoleto se il componente viene rimontato. Inoltre, poiché non è una buona pratica, poiché React si evolve, potrebbe diventare più problematico.
Un'applicazione React tenta di incapsulare tutto il suo stato, in modo che ciò che viene reso è prevedibile. Una parte importante di React è che il flusso di dati è generalmente facile da seguire: gli eventi attivano setState
, i dati scorrono, viene reso un nuovo albero.
Da quanto ho capito in questa situazione, ci sono due possibili percorsi per flash_messages
:
- Il server restituisce
flash_messages
prima che sia stata inviata la risposta HTTP o
- Un bridge Rails-JS sta inviando
flash_messages
tramite XHR all'app senza eseguire l'aggiornamento.
Nel primo caso, quando viene montata la nostra app React, può consumare questi messaggi flash al momento della costruzione e propagare di conseguenza lo sate. Non è necessario che il codice esterno si interfaccia con React: React può solo leggere flash_messages
e fare ciò di cui ha bisogno.
Nel secondo caso, l'approccio migliore è che Rails-JS espone un'interfaccia listener. Quindi, al momento della costruzione di React, puoi iscriverti agli eventi, chiamando di conseguenza setState
.
In sintesi: è meglio per React iscriversi agli eventi e aggiornare il suo stato quando necessario, invece del codice esterno che fa riferimento a this
di un oggetto.