Я использую React, Redux & Неизменяемый здесь. Вопрос заключается в объединении простого Js-объекта в Immutable Map
obj.Слияние объектов с неизменяемыми js
Импортирующие Immutable.js:
import { List as iList,
Map as iMap } from "immutable";
action.payload
это:
{
Preview : {
tabClass : "tabPreview tab activeTab"
},
Body : {
tabClass : "tabBody tab"
},
Sleeve : {
tabClass : "tabSleeve tab"
}
};
InitialTabState
создан с 'Immutable.js' заключается в следующем:
const initialTabState = iList.of(
iMap({
tabClass : "tabPreview tab activeTab",
tabName : "Preview"
}),
iMap({
tabClass : "tabBody tab",
tabName : "Body"
}),
iMap({
tabClass : "tabSleeve tab",
tabName : "Sleeve"
})
);
Функция редуктора, который слияние action.payload
вверху, в InitialTabState
:
const tabsState = (state = initialTabState, action) => {
let payload = action.payload;
switch(action.type) {
case(ENABLE_TAB):
return (
state.map((obj) => {
let curObjName = obj.get("tabName");
return (
obj.merge(payload[ curObjName ][ "tabName" ])
);
})
);
...
};
Однако, похоже, ничего не происходит. Я не получаю никакой ошибки, выходной объект остается таким же, как InitialTabState, когда свойство tabClass
внутри него должно изменяться в соответствии с функцией слияния из Immutable.js.
Что вы ожидаете от состояния, когда оно возвращается из редуктора? – max