Chcę zintegrować Reduxa z Formikiem. Za sugestią autora Formika mam coś takiego:
export const login = ({ email, password }, setErrors, setSubmitting, history) => async dispatch => {
try {
await firebase.auth().signInWithEmailAndPassword(email, password)
dispatch({ type: types.LOGIN, payload: null /* todo */ })
history.push(HOME)
} catch (e) {
setErrors({"general": messages[e.code]})
} finally {
setSubmitting(false)
}
}
Z jednej strony OK, bo wszystko ładnie działa, kod jest krótki i zrozumiały, a w globalnym stanie trzymam tylko to, co ma znaczenie dla aplikacji (nie mam tam milion razy isLoading
i error
). Z drugiej strony wydaje mi się, że nie powinienem zarządzać stanem formularza z akcji. Czy powinno się tak robić?