上一节对
createAction
进行了分析,其每次只能创建一个action,如果想要一次创建多个action,这就需要应用createActions
这一Api,下面对createActions
的源码来分析一下
createActions
createActions
的源码会复杂很多,一步一步来分析,不要着急
1 | /* |
在分析actionCreatorsFromIdentityActions
之前先分析一下arrayToObject
这个方法,因为它会在很多地方用到
1 | /* |
actionCreatorsFromIdentityActions
方法源码分析:
1 | /* |
actionMapToActionCreators
方法源码分析:
1 | /* |
actionCreatorsFromActionMap
方法源码分析:
1 | /* |
flattenActionMap
方法源码分析:
1 | /* |
flattenWhenNode
方法源码分析:
1 | /* |
unflattenActionCreators
方法源码分析
1 | /* |
createActions实例
1 | /* |
总结
createActions
方法看上去很复杂,但其内部的逻辑很清晰,主要目的就是遍历每个元素,然后分别调用createAction
方法,最终还是生成普通的action,只不过如果只用createAction
方法只能单独生成,而createActions
可以同时生成多个,减少代码量,更加方便书写,也很清晰。