考虑以下状态:
const initState = {
id: {
data: null,
isFetching: false,
fetchingError: null
},
bookmarks: {
IDs: {
news: [],
opps: [],
posts: []
},
data: {
news: [],
opps: [],
posts: []
},
isFetching: false,
fetchingError: null
},
role: null,
membership: null,
}
如何更新只是posts
对数组ÌDs
的数组bookmarks
阵列?我尝试了这个:
case 'SET_USER_BOOKMARKED_POSTS':
return {
...state,
bookmarks: {
IDs: {
posts: action.payload
}
}
}
但是,当我将状态记录到控制台时,该IDs
数组仅包含posts
,而opps
andnews
数组不再存在。
您需要破坏所有内部结构:
case 'SET_USER_BOOKMARKED_POSTS':
return {
...state,
bookmarks: {
...state.bookmarks,
IDs: {
...state.bookmarks.IDs,
posts: action.payload
}
}
}
但这不是很方便,最好用lodash合并
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句