action creator
问题导入
dispatch({type: 'book/add', payload: '三国演义'})
dispatch({type: 'book/add', payload: '红楼梦'})
一个action的type名字出现多次,多次dispatch会重复,不利于修改。
解决方式
补充一个action creator。
-
它是一个函数。
-
作用:用来创建指定类型的action。
-
入参:payload
-
返回值: action
const addAction = (payload) => ({type: 'book/add', payload})
dispatch(addAction('三国演义'))
dispatch(addAction('红楼梦'))
Action Type
问题导入
在reducer和action creator中都用到了一个字符串的 action type。
容易写错,不利于统一修改
解决方式
集中处理 action type,保持项目中 action type 的一致性
处理方式:
-
在 store 目录中创建
actionTypes
目录或者constants
目录,集中处理 -
使用常量来存储 action type。例如
export const SET_NAME = 'user/setName'
export const SUB_MORE = 'money/subMore'
3. 将项目中用到 action type 的地方替换为这些常量,从而保持项目中 action type 的一致性