Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅Ρ Ρ 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)
);
}
ΠΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π² redux? ΠΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ?
Π― Π±Ρ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²Π΅ΡΠ½ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΡΠ»ΠΈ ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, Π΅ΠΉ Π΄Π°Π΅ΡΡΡ dispatch
ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
Π― Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ AC, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π²ΡΡΠ΅. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ - Ρ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π²Π΅ΡΠ½ΡΡΡ ΠΊ Π½Π΅ΠΌΡ Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ, Π½ΠΎ Ρ Π½Π΅ Ρ ΠΎΡΡ ΡΠΎΡΠΎΠΏΠΈΡΡΡΡ Ρ API.
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅: Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΡΠ΅ΠΉΡΠ°Ρ.
// Could also look into state in the callback form
export function incrementIfOdd() {
return (dispatch, state) => {
if (state.counterStore.counter % 2 === 0) {
return;
}
dispatch(increment());
};
}
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π― Π±Ρ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²Π΅ΡΠ½ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΡΠ»ΠΈ ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, Π΅ΠΉ Π΄Π°Π΅ΡΡΡ
dispatch
ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.