Ich habe ein Beispiel für Fluke:
function authFormSubmit(fluce) {
const {valid, disabled, data: {username, password}} = fluce.stores.authForm
if (disabled) return
if (!valid) {
fluce.dispatch(AUTH_FORM_ERROR, new Error('Form is invalid'))
return
}
fluce.dispatch(AUTH_FORM_DISABLED, true)
fluce.dispatch(AUTH_FORM_ERROR, null)
authorize({username, password})
.then(
user => fluce.dispatch(CURRENT_USER, user),
error => fluce.dispatch(AUTH_FORM_ERROR, error)
)
.then(
() => fluce.dispatch(AUTH_FORM_DISABLED, false)
);
}
Wie implementiere ich denselben Action Creator in Redux? Soll ich für jeden Aktionstyp einen Aktionsersteller erstellen?
Ich würde wahrscheinlich Action Creator eine Funktion zurückgeben lassen. Wenn es sich um eine Funktion handelt, erhält sie dispatch
und den Zustand.
Ich habe die Unterstützung für asynchrone ACs wie oben beschrieben hinzugefügt. Im Moment können sie nicht auf den Status zugreifen. Ich werde wahrscheinlich irgendwann darauf zurückkommen, aber ich möchte keine API überstürzen.
Update: Sie können dies jetzt tun.
// Could also look into state in the callback form
export function incrementIfOdd() {
return (dispatch, state) => {
if (state.counterStore.counter % 2 === 0) {
return;
}
dispatch(increment());
};
}
Hilfreichster Kommentar
Ich würde wahrscheinlich Action Creator eine Funktion zurückgeben lassen. Wenn es sich um eine Funktion handelt, erhält sie
dispatch
und den Zustand.