对象解构返回嵌套对象

时间:2019-08-11 14:08:06

标签: javascript redux react-redux

我的减速器具有以下initialState:

export function videos(
  state = { videos: [], search: { videos: [], term: "" } },
  action
)... 

在我的化简器中,我寻找持久状态并用一些持久道具创建新的videos数组:

case "VIDEOS_SUCCESS": {
  const { data } = action;
  let videos = [];
  let questions = [];

  data.map(item => {
    let persistedVideo =
      state.videos.find(video => video.id === item.id) || null;
    let bookMarked = persistedVideo ? persistedVideo.bookMarked : false;
    let completed = persistedVideo ? persistedVideo.completed : false;
    ....

    videos.push(newVideo);
  });

  return { ...state, videos: videos };
}

当我返回新状态时,videos数组嵌套在video属性中。

{videos:{
    search: {videos: Array(0), term: ""},
     videos: (10) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]
}}

如何使我的状态看起来像这样:

{
   videos: (10) [],
   search: {videos: [], term: ''}
}

1 个答案:

答案 0 :(得分:0)

商店总是根据它们的化简器对状态进行分区,因此,如果您调用store.getState(),您应该期望返回的状态为

{
  reducer1: { /* state of reducer1 */ },
  reducer2: { /* state of reducer2 */ },
  ...
}