使用actionCreators统一创建action

本文介绍了如何在Redux应用中创建并使用actionCreators,通过在actionCreators.js文件中定义action,然后在TodoList.js组件中导入并调用这些action,实现了action的统一管理和简化数据操作。

1.在store文件夹下面新建一个文件名为actionCreators.js
2.在actionCreators.js文件中

//导入我们需要的CHANGE_INPUT_VALUE, ADD_TODO_ITEM, DELETE_TODO_ITEM数据
import { CHANGE_INPUT_VALUE, ADD_TODO_ITEM, DELETE_TODO_ITEM } from "./actionTypes";

//定义一个getInputChangeAction方法用于inputchangevalue的action
export const getInputChangeAction = (value) => ({
    type: CHANGE_INPUT_VALUE,
    value
});

//同理
export const getAddItemAction = () => ({
    type: ADD_TODO_ITEM,
   
});

//同理
export const getDeleteItemAction = (index) => ({
    type: DELETE_TODO_ITEM,
    index
})

3.在TodoList.js文件中,首先导入刚刚定义的getInputChangeAction,getAddItemAction和getDeleteItemAction

import {getInputChangeAction,getAddItemAction,getDeleteItemAction} from './store/actionCreators'

4.改变action中内容的书写方式:

  //原来的写法:
  // handleInputChange(e) {
    //     const action = {
    //         //type:指需要改变的东西
    //         type:CHANGE_INPUT_VALUE,
    //         value:e.target.value
    //     }
//通过dispatch(action)把数据传递给store
       // store.dispatch(action); 
    
   //现在的写法
    handleInputChange(e) {
        const action = getInputChangeAction(e.target.value);
        store.dispatch(action);
    }
// handleBtnClick() {
    //     const action = {
    //         type: ADD_TODO_ITEM,
    //     };
    //     store.dispatch(action);
    // }

   
    handleBtnClick() {
        const action = getAddItemAction();
        store.dispatch(action);
    }

 // handleItemDelete(index) {
    //     const action = {
    //         type: DELETE_TODO_ITEM,
    //         //把下标的值index传递给reducer
    //         index
    //     }
    //     store.dispatch(action);
    // }

    handleItemDelete(index) {
        const action = getDeleteItemAction(index);
        store.dispatch(action);
    }

这样就将action进行统一的创建了,有利于数据的管理

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值