带有Redux和x27的ImmutableJS;组合传感器

带有Redux和x27的ImmutableJS;组合传感器,redux,immutable.js,Redux,Immutable.js,得到警告:在将reducer(每个都有自己的immutable.js Map)与#redux combinereducer组合时,“还不完全支持将映射用作子对象”。有什么更好的商店结构可以避免这种情况 import reducer_2 from './action_handlers/two'; import reducer_3 from './action_handlers/three'; import { combineReducers } from 'redux'; let reducer

得到警告:在将reducer(每个都有自己的immutable.js Map)与#redux combinereducer组合时,“还不完全支持将映射用作子对象”。有什么更好的商店结构可以避免这种情况

import reducer_2 from './action_handlers/two';
import reducer_3 from './action_handlers/three';
import { combineReducers } from 'redux';

let reducer = combineReducers({
    reducer_2,
    reducer_3
});

export default reducer;

//=====================
// ./action_handlers/two.js

const INITIAL_STATE_2 = new Map({
    foo: 'bar'
});
export default function reducer_2(state = INITIAL_STATE_2, action) {...}

//======================
// ./action_handlers/three.js

const INITIAL_STATE_3 = new Map({
    baz: 'bat'
});
export default function reducer_3(state = INITIAL_STATE_3, action) {...}

//=======================

看起来您使用的是而不是不可变的。

在两个还原程序中编写以下代码行:

import { Map } from 'immutable';
然后

const INITIAL_STATE_2 = Map({
    foo: 'bar'
});
或者你可以使用

import Immutable from 'immutable';
const INITIAL_STATE_2 = Immutable.Map({
    foo: 'bar'
});

现在还不清楚您的问题是与Immutable.js Map数据结构相关还是与常规Map对象相关


但是,在这两种情况下,Redux的组合减速机都会创建一个普通对象作为根状态。如果您使用的是Immutable.js,则存在一个提供
combineReducers
函数的包,该函数返回一个Immutable.js数据结构而不是一个对象。

您不能使用redux的combine reducer
Redux附带的combineReducers函数将无法工作,因为它不知道如何读取和创建状态的新版本。

您是否解决了此问题,如果是,如何解决?