redux求和案例-完整版

相较于简单版本新增了2个文件

 1.count_action.js专门用于创建action对象
 2.constant.js放置容易写错的type值

redux文件夹中新增count_action.js文件

/**该文件专门为Count组件生成action对象 */
import{INCREMENT,DECREMENT} from './constant'
export const  createIncrementAction=data=>({type:INCREMENT,data})
export const  createDecrementAction=data=>({type:DECREMENT,data})

component/Count/index.js中需要更改的部分

    //加法
    increment=()=>{
        const{value}=this.selectNumber
       //通知redux加value
       //store.dispatch({type:'increment',data:value*1})
       store.dispatch(createIncrementAction(value*1))
    }
    //减法
    decrement=()=>{
        const{value}=this.selectNumber
        //store.dispatch({type:'decrement',data:value*1})
        store.dispatch(createDecrementAction(value*1))
    }
    //奇数再加
    incrementIfOdd=()=>{
        const{value}=this.selectNumber
        const count=store.getState()
       if(count%2!=0){
        // store.dispatch({type:'increment',data:value*1})
        store.dispatch(createIncrementAction(value*1))
       }
    }
    //异步加
    incrementAsync=()=>{
        const{value}=this.selectNumber
       setTimeout(() => {
        // store.dispatch({type:'increment',data:value*1})
        store.dispatch(createIncrementAction(value*1))
       }, 500);
    }

在redux中新建const.js文件

/**该模块是用于定义action对象中type类型的常量值 ,目的只有一个:便于管理的同时防止程序员单词拼写错误*/
export const INCREMENT='increment'
export const DECREMENT='decrement'

count_reducer.js中

/**
 * 1.该文件是用于创建一个为Count组件服务的reducer,reducer的本质是一个函数
 * 2.reducer函数会接到两个参数,分别为:之前的状态(preState),动作对象(action)
 */
import{INCREMENT,DECREMENT} from './constant'
const initState=0//初始化状态
export default function countReducer(preState=initState, action) {
    console.log(preState,action)
  //从action对象中获取:type、data
  const { type, data } = action;
  //根据type决定如何加工数据
  switch (type) {
    case INCREMENT:
      return preState + data
    case DECREMENT:
      return preState - data
    default:
        return preState
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值