我有以下状态
const initialState = {
photos: [],
selectedPhoto:{},
photosTeamId:'',
photosProjectId:''
};
照片是一个有照片对象的数组,在照片对象中,有一系列评论。我正在尝试找到正确的照片,然后找到正确的评论并更新该评论。
这是我的代码
case actionTypes.COMMENT_UPDATED_TO_PHOTOS:
console.log(action.data)
return {
...state,
photos: state.photos.map((photo) => {
photo.id === action.data.selectedPhotoId ? {
comments: photo.comments.map((comment) => {
console.log(comment)
return comment.id === action.data.commentId ? { ...comment, comment: action.data.fullComment } : comment
})
} : photo
})
}
答案 0 :(得分:2)
代码看起来没问题,除了外部匿名函数周围的花括号。由于这些声明了一个代码块,因此在return
之前应该有一个photo.is === ...
语句,或者你可以简单地删除它们来获得一个表达式:
case actionTypes.COMMENT_UPDATED_TO_PHOTOS:
console.log(action.data)
return {
...state,
photos: state.photos.map((photo) =>
photo.id === action.data.selectedPhotoId ? {
...photo,
comments: photo.comments.map((comment) => {
console.log(comment)
return comment.id === action.data.commentId ? { ...comment, comment: action.data.fullComment } : comment
})
} : photo
)
}
更新:评论中提到的还有一个...photo,
缺失。