Qual è il modo corretto per inizializzare i dati (in modo asincrono) con RefluxJS? C'è qualcosa di simile alle risoluzioni di AngularJS, o l'implementazione di Flux non ha nulla a che fare con questo (il router dovrebbe gestire questa responsabilità)?Modo corretto per inizializzare i dati
risposta
Nel componente di livello superiore dell'applicazione, utilizzare il metodo comoponentWillMount
(docs) per attivare un'azione che recupera i dati. Questo metodo verrà chiamato quando il componente è inizialmente sottoposto a rendering.
Ad esempio:
// Create an async action, that will request data using a promise
// Using the recently released (v0.2.2) helpers for async actions
var actions = Reflux.createActions({
init: {asyncResult: true}
});
actions.init.listenAndPromise(promiseToGetData);
// Update the store when the init action's promise is completed
var store = Reflux.createStore({
listenables: actions,
onInitCompleted: function (data) {
// do stuff
this.trigger(data)
}
});
var App = React.createClass({
mixins: [Reflux.connect(store)],
componentWillMount: function() {
// When this component is loaded, fetch initial data
actions.init()
}
});
reflusso ha un'API per questo effettivamente.
La documentazione sono poveri a descriverla, ma Spoike (autore del reflusso) ha dato una risposta con un esempio di codice: Solo una domanda
Questa domanda riguardava il recupero dei dati in modo asincrono. Reflux imposta il metodo 'getInitialState' del negozio sui componenti React e non deve essere utilizzato per il recupero dei dati in modo asincrono. L'esempio nella risposta a cui ti sei collegato è per valori statici. Vedi un React [documentazione] ufficiale (https://facebook.github.io/react/tips/initial-ajax.html) per un esempio e http://stackoverflow.com/questions/26615307 –
- 1. È questo il modo corretto per inizializzare i membri dei dati statici delle classi template?
- 2. Qual è il modo "corretto" per inizializzare un delegato C#?
- 3. Modo corretto per inizializzare la matrice dinamica in C++
- 4. Modo corretto per inizializzare l'array di boost :: scoped_ptr?
- 5. modo corretto di inizializzare Fabric.io per il debug/rilascio
- 6. Modo corretto per inizializzare la variabile membro vettoriale
- 7. modo corretto per inizializzare i valori degli scope quando la vista è caricata con angularjs, ngInit?
- 8. Modo corretto di utilizzare i dati dall'API RESTFUL in django
- 9. Come inizializzare i dati per ogni chiamata in JMH?
- 10. Posto corretto per inizializzare le variabili di classe?
- 11. Modo corretto per inizializzare HashMap e HashMap può contenere diversi tipi di valore?
- 12. Modo corretto per rimuovere (spurgare) tutti i dati portachiavi per un'app iOS
- 13. Modo corretto per organizzare i test che coinvolgono un file di dati per ogni testcase?
- 14. Modo corretto per chiamare l'origine dati JNDI all'interno di Tomcat
- 15. Qual è il modo corretto per inizializzare un modello e visualizzare in CAL WPF MVVM
- 16. Modo corretto per i collegamenti per eseguire il codice javascript
- 17. modo corretto per creare stili per i componenti personalizzati
- 18. Il modo corretto per inizializzare un puntatore dinamico su un array multidimensionale?
- 19. Modo corretto per distribuire i file Django/statici su Heroku
- 20. getopt_long() - modo corretto per usarlo?
- 21. Qual è il modo corretto per inizializzare stringhe vuote in PHP?
- 22. Modo corretto per inizializzare un dizionario C# con valori già presenti?
- 23. Modo corretto per inizializzare un oggetto con costruttore di lancio di eccezioni
- 24. Qual è il modo corretto per inizializzare un array a lunghezza fissa?
- 25. Qual è il modo corretto per inizializzare un class_attribute in Rails?
- 26. Modo corretto per inizializzare un array di stringhe con terminazione NULL in C
- 27. Qual è il modo corretto per separare i dati nella base di divani
- 28. modo corretto per copiare i dati da Tbyte a matrice di byte in Delphi
- 29. Un modo corretto per tornare da ggvis quando i dati sono vuoti?
- 30. Esiste un modo corretto per trasferire i dati in un componente React dalla pagina HTML?
: Se io sto usando refluxjs con reagiscono-router, cosa succede se la promessa è stata respinta; Il montaggio è bloccato (tecnicamente, non succede niente) o viene gestito manualmente? – srph
Il componente sarà ancora montato, la chiamata all'azione è attiva e dimenticata. Se la promessa viene rifiutata, il negozio riceverà comunque il risultato ed è possibile aggiungere un gestore 'onInitFailed'. Vedi https://github.com/spoike/refluxjs#asynchronous-actions per ulteriori informazioni sulle azioni asincrone. –
Grazie. A proposito, ti riferisci a '' 'componentWillMount''' piuttosto che a' '' onComponentWillMount'''? – srph