Я использую redux
с Immutable JS
.Мой state
- это Immutable JS
объект, что-то вроде
const initialState = Immutable.fromJS({
bar: 1
foo: {
bar: 'a',
foo: 'b',
foobar: [
{
...
...
...
Теперь у меня есть редуктор, и обычно я делал бы
export function foo(state = initialState, action) {
switch (action.type) {
case FOO:
return {
...state,
foo: {
...state.foo,
bar: action.value
}
};
...
Но теперь, когда я использую Immutable JS
Мне нужно сделать
export function foo(state = initialState, action) {
switch (action.type) {
case FOO:
return {
...state, // do I need to change something here too?
foo: {
...state.get('foo'), // this changed
bar: action.value
}
};
...
Однако, это портит мой магазин.Я теряю все, но bar: action.value
.Кажется, что ...state.get('foo')
не равно ...state.foo
.
Как мне сделать это правильно?Или я использую Immutable JS
здесь неправильно?