剧场模式
首页前端ReduxRedux 入门教程(React 进阶)

Redux 入门教程 #12 中间件

求知小风 · 真仙发布于
6

https://redux.js.org/api-reference/createstore

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import registerServiceWorker from './registerServiceWorker';
import { createStore, applyMiddleware } from 'redux';
import rootReducer from './reducers';
import { Provider } from 'react-redux';

const logger = store => next => action => {
  console.log('dispatching', action);
  let result = next(action);
  console.log('next state', store.getState());
  return result;
};

const error = store => next => action => {
  try {
    next(action)
  } catch(e) {
    console.log('error ' + e);
  }
};

// const logger = function(store) {
//   return function(next) {
//     return function(action) {
//       console.log('dispatching', action);
//       let result = next(action);
//       console.log('next state', store.getState());
//       return result;
//     }
//   }
// }

const store = createStore(rootReducer, {}, applyMiddleware(logger, error));

// store.subscribe(() => console.log("State updated!", store.getState()));

ReactDOM.render(
  <Provider store={ store }>
    <App />
  </Provider>,
  document.getElementById('root')
);

registerServiceWorker();

reducers/counter.js

const counter = (state = 1, action = {}) => {
  switch(action.type) {
    case 'INCREMENT':
      throw new Error('error in INCREMENT')
      // return state + 1;
    case 'DECREMENT':
      return state - 1;
    default: return state;
  }
}

export default counter;

5 条回复
  • MuYu · 合体
    MuYu · 合体 #1

    这里其实是有很多疑问没有解开的。
    applyMiddleware() 背后是有函数组合的思想的。
    中间件的写法为什么会是 store => next => action 的这种写法,这背后是函数柯里化的思想
    说到函数柯里化和函数组合,就不的不说到函数式编程的思想了

  • 想卖咖啡的程序员 · 元婴

    👍

  • xll · 道祖
    xll · 道祖 #3

    let next=store.dispatch;
    store.dispatch=(action)=>{}

  • netNowork · 大乘
    netNowork · 大乘 #4

    系统日志提示

  • netNowork · 大乘
    netNowork · 大乘 #5

    next () 应该怎么样理解 那块 逻辑有点不好理解

加微信(qiuzhi99666)入群官方服务号
随机课程
线上服务器部署(前后端)

线上服务器部署(前后端)

27 个视频2 小时 48 分钟高级

Pro¥ 139.00¥ 111.20

其他已完结

学员(164)
不满 · 真仙温文尔雅 · 道祖烂肉 · 大罗大洋羊 · 元婴wangmingyuan · 练虚heiy · 道祖jeanim · 大乘一支笔 · 元婴求知小白 · 真仙weikq · 大乘Yang8547 · 元婴Catherine🌱 · 练虚
最新动态
不满 · 真仙学习到了9:30
温文尔雅 · 道祖学习到了9:26
烂肉 · 大罗学习到了9:28
大洋羊 · 元婴学习到了0:58
wangmingyuan · 练虚学习到了9:20
统计信息
    学员: 15217
    视频数量: 878
    帖子数量: 433

© 汕尾市求知科技有限公司 | 粤ICP备19038915号 | 在线学员:132

Top