react简书项目学习笔记18action和reducer的编写

1.调试redux使用redux devtool(google商城安装)
2.在store/index.js文件配置store的第二个参数

import { createStore,compose } from 'redux';
import reducer from './reducer';
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const store = createStore(reducer, composeEnhancers());
export default store;

3.在组件中引入store

import store from './store';

4.提交action给store

  handleBtnClick() {
    const action = {
      type:'add_todo_item'
    };
    store.dispatch(action);
  }

5.store接收到action后,把信息传递给reducers进行处理
下面这段处理信息写在store文件夹下的reducers.js里
reducer可以接受state,但不可以修改state,所以每次都是拷贝一个state,然后修改新的state,最后把新state返回给store

//reducer可以接受state,但不可以修改state
export default (state = defaultState, action) => {
  if (action.type === 'change_input_value') {
    const newState = JSON.parse(JSON.stringify(state));
    newState.inputValue = action.value;
    return newState;
  }
  if (action.type === 'add_todo_item') {
    const newState = JSON.parse(JSON.stringify(state));
    newState.list.push(newState.inputValue);
    newState.inputValue = '';
    console.log(newState);
    //reducer要return newState
    return newState;
  }
  return state;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值