从React.js应用程序在我的Redux存储中推送新元素的正确方法是什么

时间:2019-09-28 14:29:31

标签: reactjs redux immutable.js

我有一个使用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]
            };

但我收到一条错误消息:

  

尝试传播不可迭代的实例无效。

0 个答案:

没有答案