Tenho alguns exemplos em fluce:
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)
);
}
Como implementar o mesmo criador de ação no redux? Devo criar um criador de ação para cada tipo de ação?
Eu provavelmente deixaria o criador de ação retornar uma função. Se for uma função, são fornecidos dispatch
e o estado.
Eu adicionei suporte para ACs assíncronos conforme descrito acima. Por enquanto, eles não podem acessar o estado - provavelmente voltarei a ele em algum momento, mas não quero apressar uma API.
Atualização: você pode fazer isso agora.
// Could also look into state in the callback form
export function incrementIfOdd() {
return (dispatch, state) => {
if (state.counterStore.counter % 2 === 0) {
return;
}
dispatch(increment());
};
}
Comentários muito úteis
Eu provavelmente deixaria o criador de ação retornar uma função. Se for uma função, são fornecidos
dispatch
e o estado.