【发布时间】:2019-08-11 14:08:06
【问题描述】:
我的减速器有以下初始状态:
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: ''}
}
【问题讨论】:
-
return { ...state, ...videos };试试看。 -
“我怎样才能让我的状态看起来像” 那有什么不同(除了顺序)? (10) 是什么意思?
-
@zynkn - OP 似乎不太可能希望在其状态对象上命名为
"0"、"1"等的属性。 -
@zynkn 视频是一个视频对象数组,所以我很确定他不想将其传播到该州。
-
@T.J.Crowder, 10 可能是数组的长度。
标签: javascript redux react-redux