【问题标题】:How to Setup Redux in React without Immutable?如何在没有不可变的情况下在 React 中设置 Redux?
【发布时间】:2016-07-29 08:39:28
【问题描述】:

我通过Teropa's incredible tutorial 学习了如何 Redux。然而,他的实现使用了 Immutable,虽然很棒,但我想从我当前的应用程序构建中删除它。我试图弄清楚如何在不依赖 Immutable 的情况下维护以下内容。我不知何故需要修改reducer.js 以取出Immutable,但是没有state = Map(),导出的函数总是失败。

索引.jsx

store.dispatch({
  type: 'SET_STATE',
  state: { ... }
});

action_creators.js

export function setState(state) {
  return {
    type: 'SET_STATE',
    state
  };
}

reducer.js

import { Map } from 'immutable';

function setState(state, newState) {
  return state.merge(newState);
}
export default function(state = Map(), action) {
  switch (action.type) {
  case 'SET_STATE':
    return setState(state, action.state);
  }
  return state;
}

【问题讨论】:

标签: javascript reactjs redux immutable.js


【解决方案1】:
function setState(state, newState) {
  return {
    ...state,
    ...newState
  };
}
export default function(state = {}, action) {
  switch (action.type) {
  case 'SET_STATE':
    return setState(state, action.state);
  }
  return state;

查看我在状态管理库中如何使用它https://github.com/nosovsh/reduceless/blob/master/src/wrapReducerWithSetGlobalState.js#L9

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-02
    • 1970-01-01
    • 2021-10-27
    • 2019-02-20
    • 2019-08-05
    • 2011-11-21
    • 2021-05-16
    • 2018-06-08
    相关资源
    最近更新 更多