1
私は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"
}
};
'Immutable.js' はこれですで作成InitialTabState
:
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
を01にマージしています上記のは次のとおりです。
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