рд╡рд░реНрддрдорд╛рди рдореЗрдВ, bindActionCreators
рдПрдХрд▓ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдпрджрд┐ рдпрд╣ рдЗрд╕ рдХреЛрдб рдкреИрдЯрд░реНрди рдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рдгреА рднреА рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ:
import * as ac from './actionCreators';
// later in file...
const [doThis, doSomethingElse, doAnotherThing] = bindActionCreators(
[ac.doThis, ac.doSomethingElse, ac.doAnotherThing
], dispatch);
// ...
рдореИрдВ рдЕрдкрдиреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдирд╛рдореЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдХрд┐рд╕реА рднреА рдЧрд▓рддреА рдХреЛ рддреБрд░рдВрдд рдПрд╕реНрд▓рд┐рдВрдЯ-рдкреНрд▓рдЧрдЗрди-рдЖрдпрд╛рдд/рдиреЗрдорд╕реНрдкреЗрд╕ рджреНрд╡рд╛рд░рд╛ рддреНрд░реБрдЯрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдХрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИ:
diff --git a/src/bindActionCreators.js b/src/bindActionCreators.js
index e70e270..6050c32 100644
--- a/src/bindActionCreators.js
+++ b/src/bindActionCreators.js
@@ -28,6 +28,10 @@ export default function bindActionCreators(actionCreators, dispatch) {
return bindActionCreator(actionCreators, dispatch)
}
+ if (Array.isArray(actionCreators)) {
+ return actionCreators.map(ac => bindActionCreator(ac, dispatch));
+ }
+
if (typeof actionCreators !== 'object' || actionCreators === null) {
throw new Error(
`bindActionCreators expected an object or a function, instead received ${actionCreators === null ? 'null' : typeof actionCreators}. ` +
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ bindActionCreator
рдЕрдзрд┐рдХ рдкреЙрд▓рд┐рдореЙрд░реНрдлрд┐рдХ рдмрдирд╛рдирд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛, рдХреЗрд╡рд▓ рдПрдХ рд░реИрдкрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд░рддрд╛ рд╣реИ?
function mapBindActionCreators(actions, dispatch) {
return actions.map(action => bindActionCreator(action, dispatch)
}
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рд╕рд░рдгреА рд╣реИ рддреЛ рдЖрдк рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рд░рдгреА reduce()
рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕реЗ bindActionCreator
рдкрд░ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рд╣рд╛рдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдпрд╣рд╛рдВ рд╣рд░ рд╕рдВрднрд╡ рдХреНрд░рдордкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐
bindActionCreator
рдЕрдзрд┐рдХ рдкреЙрд▓рд┐рдореЙрд░реНрдлрд┐рдХ рдмрдирд╛рдирд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛, рдХреЗрд╡рд▓ рдПрдХ рд░реИрдкрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд░рддрд╛ рд╣реИ?