不可变的 JS:在地图中设置地图的值
Immutable JS: Set value of map inside 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',
})
});
我只想检查 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'
})
});
这对我有用:return state.setIn(['color', action.thread_id], action.code);
我有这样的不可变
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'
})
});
这对我有用:return state.setIn(['color', action.thread_id], action.code);