为什么可以将Immutable.js Map作为Redux状态返回?

时间:2017-01-04 13:27:55

标签: javascript reactjs react-redux immutable.js

我正在努力学习如何正确使用Immutable.js。我找到了这篇文章:http://frontendinsights.com/immutablejs-with-redux-his-best-friend/

它有以下代码段:

const initialState = Immutable.Map({ counter: 0 });
const reducer = (state, action) => {
switch (action.type) {
  case 'INCREMENT':
    return state.set('counter', state.get('counter') + 1);
  case 'DECREMENT':
    return state.set('counter', state.get('counter') - 1);
  default:
    return state;
  }
};

const store = createStore(reducer, initialState);

令我困惑的是,对我来说,看起来开关正在将Map作为状态返回。

我尝试了以下的不可变:

var obj = {
  lol: 'trol',
}

var immu = Immutable.Map(obj)
var immu2 = immu
immu2 = immu2.set('lol', 'trollz')
console.log(immu2) // Map {size: 1, _root: ArrayMapNode, __ownerID: undefined, __hash: undefined, __altered: false}
console.log(immu2.toObject()) // Object {lol: "tral"}

我认为Redux状态需要始终是对象。

那么,Map()实际返回的是什么?为什么可以将其设置为Redux状态?

0 个答案:

没有答案