Action

reducer的Action(对象)参数,类似于一个接口,它主要是和reducer联动的,它默认必须返回一个type,用这个type的值来判断reducer中做哪一步操作

创建Action

利用 Action 创建函数来创建 Action

  1. const action = {
  2. type: 'ADD_TODO',
  3. //type属性是必须的,表示 Action 的名称,值是一个字符串
  4. payload: 'Learn Redux'
  5. //payload ,也就是这个 action 携带的数据,可以自由设置
  6. }

例子:Reducer实现加一

  1. //export default 默认输出
  2. export default function likeReducer(state = 0, action) {
  3. //likeReducer函数有两个参数state 和 action
  4. switch (action.type) {
  5. //传入action的type参数作为switch的参数
  6. case 'INCREMENT_NUM':
  7. //找到需要执行的action操作
  8. console.log('state', state)
  9. return state + 1
  10. //返回的新的state
  11. default:
  12. return state;
  13. //如果找不到或执行错误,默认返回旧的state
  14. }
  15. }

调用

  1. 直接调用dispatch
  1. //创建一个 被绑定的 action 创建函数 来自动 dispatch
  2. const boundAddnum = (num) => dispatch(addnum(num))
  1. 通过store.dispatch()调用
  1. //在组件内调用dispatch,触发 state 变化。重新渲染
  2. store.dispatch({type:'INCREMENT_NUM'})