Jaki jest właściwy sposób inicjowania danych (asynchronicznie) za pomocą RefluxJS? Czy istnieje coś podobnego do rozwiązania AngularJS lub implementacja Flux nie ma z tym nic wspólnego (router powinien obsługiwać tę odpowiedzialność)?Właściwy sposób inicjowania danych
Odpowiedz
W składniku najwyższego poziomu aplikacji użyj metody comoponentWillMount
(docs), aby wywołać akcję, która pobiera dane. Ta metoda zostanie wywołana, gdy komponent zostanie początkowo wyrenderowany.
Na przykład:
// 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()
}
});
Refluks ma API dla tego właściwie.
Docs są ubogie w opisywaniu tego, ale Spoike (autor refluksem za) dał odpowiedź wraz z przykładu kodu:
To pytanie dotyczyło asynchronicznego pobierania danych. Reflux ustawia metodę "getInitialState" sklepu na komponentach React i nie należy jej używać do asynchronicznego pobierania danych. Przykład w odpowiedzi, z którą się łączysz, dotyczy wartości statycznych. Zobacz oficjalny React [dokumentacja] (https://facebook.github.io/react/tips/initial-ajax.html) na przykład i http://stackoverflow.com/questions/26615307 –
- 1. Jaki jest właściwy sposób inicjowania QList?
- 2. Jaki jest właściwy sposób inicjowania pustych ciągów w PHP?
- 3. Jaki jest właściwy sposób inicjowania macierzy o stałej długości?
- 4. Sposób inicjowania statycznego SparseArray
- 5. Właściwy sposób uzyskiwania danych z bazy danych Access
- 6. Jaki jest najlepszy sposób inicjowania aktora z bazy danych?
- 7. Sposób inicjowania stałej wartości CLSID
- 8. Właściwy sposób zakończenia BeginInvoke?
- 9. Właściwy sposób wstrzymania System.Timers.Timer?
- 10. "Właściwy" sposób przechowywania danych binarnych za pomocą C++/STL
- 11. Właściwy sposób buforowania danych z wywołania API za pomocą nodejs
- 12. Swift Realm, załaduj wstępnie wypełnioną bazę danych we właściwy sposób?
- 13. Czy istnieje właściwy sposób resetowania początkowych danych komponentu w vuejs?
- 14. Właściwy sposób przechowywania strefy czasowej w bazie danych?
- 15. Właściwy sposób wywoływania źródła danych JNDI w Tomcat
- 16. Zarządzanie modelami danych w AngularJS we właściwy sposób
- 17. Jaki jest poprawny sposób inicjowania wskaźnika wc?
- 18. Elegancki sposób inicjowania i rozszerzania tablicy javascript
- 19. Czy istnieje krótszy sposób inicjowania QByteArray?
- 20. Prawidłowy sposób inicjowania struct w konstruktorze klasy
- 21. Sposób inicjowania mapy w maszynie do pisania
- 22. sposób inicjowania odwołania do obiektu constexpr
- 23. Właściwy sposób organizowania myapp/routes/*
- 24. Jaki jest właściwy sposób przekierowania?
- 25. Właściwy sposób pozbycia się BitmapSource
- 26. Właściwy sposób pozycjonowania: przed pseudoelementami
- 27. Właściwy sposób wywoływania metody JavaScript
- 28. Właściwy sposób zwalniania obiektów COM?
- 29. właściwy sposób sudo nad ssh
- 30. Właściwy sposób nawigacji z Emberem
Tylko pytanie: Jeśli używam refluxjs z reagują-routera, co dzieje się, jeśli obietnica została odrzucona; Czy montaż został zatrzymany (technicznie rzecz biorąc, nic się nie dzieje) lub czy jest obsługiwany ręcznie? – srph
Komponent nadal będzie montowany, wywołanie akcji to ogień i zapomnij. Jeśli obietnica zostanie odrzucona, sklep nadal otrzyma wynik i możesz dodać handler 'onInitFailed'. Zobacz https://github.com/spoike/refluxjs#asynchronous-actions, aby uzyskać więcej informacji o akcjach asynchronicznych. –
Dzięki. A propos, czy odwołujesz się do '' 'componentWillMount''' zamiast' '' onComponentWillMount'''? – srph