рдореЗрд░реЗ рдкрд╛рд╕ рдлрд╝реНрд▓реВрд╕ рдкрд░ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
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
рдФрд░ рд░рд╛рдЬреНрдп рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдКрдкрд░ рдмрддрд╛рдП рдЕрдиреБрд╕рд╛рд░ async AC рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рд╣реИред рдЕрднреА рдХреЗ рд▓рд┐рдП, рд╡реЗ рд░рд╛рдЬреНрдп рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗтАФрдореИрдВ рд╢рд╛рдпрдж рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдЙрд╕ рдкрд░ рд╡рд╛рдкрд╕ рдЖрдКрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рдПрдкреАрдЖрдИ рдХреЛ рдЬрд▓реНрджреА рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред
рдЕрджреНрдпрддрди: рдЖрдк рдЗрд╕реЗ рдЕрднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
// 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
рдФрд░ рд░рд╛рдЬреНрдп рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред