我有一个使用Redux的React.js应用程序。而且我还使用Immutable.js来管理我的初始状态。我已经阅读了很多意见和主题,什么是推动新元素的最佳方法,但我似乎并不了解。我只知道它必须是一个全新的实例。
到目前为止,我的代码如下(重要部分):
const initialState = fromJS({
videos: [],
});
export default (state = initialState, action) => {
switch (action.type) {
case ON_VIDEOS_FETCHED:
return state.merge({
videos: fromJS(action.videos),
});
case ON_VIDEO_UPLOADED:
// 'action.newVideo' is the item which I want to insert into state.videos
// WHAT NEEDS DO BE RETURNED HERE?
default:
return state;
}
};
我尝试过这样:
case ON_VIDEO_UPLOADED:
return {
...state,
videos: [...state.videos, action.newVideo]
};
但我收到一条错误消息:
尝试传播不可迭代的实例无效。