W mojej aplikacji reag/redux często chcę wysyłać wiele akcji po drugiej.Jak wysyłać wiele akcji jeden po drugim
Biorąc pod uwagę następujący przykład: Po pomyślnym zalogowaniu chcę zapisać dane użytkownika i po tym Chcę zainicjować kolejną akcję asynchroniczną, która ładuje konfigurację aplikacji z serwera.
wiem, że mogę używać redux-thunk
zbudować twórcy działania jak ten
function loginRequestSuccess(data) {
return function(dispatch) {
dispatch(saveUserData(data.user))
dispatch(loadConfig())
}
}
Więc moje pytania to:
- gdy pierwszy
dispatch
powroty, to stan już zmieniony przez wszystkich reduktorów słuchasz tego działania? Zastanawiam się, czy te dwie wywołania wysyłki są wykonywane sekwencyjnie. - Czy to podejście jest uważane za najlepszą praktykę w przypadku wysyłania wielu działań? Jeśli nie, co sugerowałbyś na przemian?
Dzięki za pomoc!
Przyjrzałem się sadze redux, opartej na generatorze/zysku, który może pasować do tego, co chcesz. Może to być trudne na pierwszy rzut oka, ale jeśli chcesz przejąć kontrolę nad tym, co będzie sekwencyjne lub równoległe, spróbuj tego http://yelouafi.github.io/redux-saga/docs/advanced/SequencingSagas.html –
Podczas wysyłki sekwencyjny i synchroniczny, ReactJS będzie aktualizował zbiorczo i uruchamiał jego aktualizację (rendering, itp.) asynchronicznie, więc możesz otrzymać tylko jeden render. Zobacz https://github.com/reactjs/react-redux/issues/291 –