Ваш код выглядит нормально, и когда я запускаю его в репле, он работает.
Я проверил его, добавив следующее:
const newState = addUserReducer(undefined, {
type: 'ADD_USER', // I just assumed that's what your type resolves to.
id: 1,
name: 'FOO',
age: 100,
});
console.log(newState); // Logs "Map { "user": [object Object] }"
console.log(Immutable.Map.isMap(newState); // true
console.log(Immutable.Map.isMap(newState.get('user'))) //false
Я подозреваю причину, по которой он не работаетвы, потому что фактический тип вашего действия на самом деле не равен actionTypes.ADD_USER
.Я бы дважды проверил этот случай в редукторе.Простой журнал в этом случае должен сказать вам.
Кроме того, как уже говорилось в других комментариях, прямо сейчас ваш случай ADD_USER устанавливает пользователя в качестве объекта NON-Immutable, поэтому вместо этого измените оператор возврата ADD_USER следующим образом:
state.set('user', Immutable.Map(user));
Также обратите внимание, что, поскольку «пользователь» является ключом верхнего уровня, метод Maps .set работает просто отлично.