为了防止在redux中打错字母,控制台不报错,同时很难找到错误,
我们在store文件夹下建actionType.js
export const CHANGE_INPUT_VALUE = ‘actionType';
以此列出所有actionType
然后在组件TODOLIST.js中引入
import { 所有actionType } from ‘./store/actionTypes’
然后将之前函数中action中的type全部改成相对应的
如:CHANGE_INPUT_VALUE
reducer.js中同理
封装:将各个action统一拆分到一个地方方便管理
store下创建actionCreators.js
import { CHANGE_INPUT_VALUE } from './actionTypes';
export const getInputChangeAction = ( value)=>({
type:CHANGE_INPUT_VALUE,
value
})
//在组件文件中也要引入
import { getInputChangeAction }from './store/actionCreators'
//在之前写好的action函数中 增加一下
const action =getInputChangeAction(e.target.value);
//然后把之前的const action老代码删掉
概念补充:
1、store是唯一的
2、只有store能改变自己的内容 外部不可变动
3、reducer里必须是纯函数(给定固定的输入就一定会有固定的输出且不会有副作用:副作用:对接受的参数也修改)
例:newState.inputValue = new Date();
return newState;
不是纯函数 这个值随着时间变化而改变 不是固定的
4、Redux里核心API
createStore 创建store
store.dispatch 派发action,action会传递给store
store.getState 获取store里所有数据内容
store.subscribe订阅