【发布时间】:2016-05-06 06:39:31
【问题描述】:
我有这样的不可变
Immutable.Map({
name: action.data.name,
avatarUrl: action.data.up,
profileUrl: action.data.upl,
id: action.data.uid,
role: Immutable.fromJS(action.data.r),
color: Immutable.Map({
initial: '#00FF00',
})
});
我只想检查color map中是否存在与键对应的值,然后更改它。如果它不存在,则在 color map 内添加一个新键,其新值如下:
Immutable.Map({
name: action.data.name,
avatarUrl: action.data.up,
profileUrl: action.data.upl,
id: action.data.uid,
role: Immutable.fromJS(action.data.r),
color: Immutable.Map({
initial: '#00FF00',
c-0: '#000000',
7: '#0000FF'
})
});
我尝试的是这个,但它不起作用并在任何地方添加键。
return state.setIn(state.getIn('color', action.thread_id), action.code);
thread_id 是键,如“c-0”或“7”,代码包含要针对键添加或更新的值
更新 1 当添加像'c-0'和'c-1','7'和'8'这样的键时,它会在地图内添加像
Immutable.Map({
name: action.data.name,
avatarUrl: action.data.up,
profileUrl: action.data.upl,
id: action.data.uid,
role: Immutable.fromJS(action.data.r),
c: Immutable.Map({
-: Immutable.Map({
0: '#00F0F0',
1: '#0000F0',
})
})
7: '#FFFF00',
8: '#00FFFF',
color: Immutable.Map({
initial: '#00FF00'
})
});
【问题讨论】:
-
使用
state.getIn(['color', 'initial']),我无法访问键初始值。任何帮助将不胜感激
标签: immutable.js