Node.js Redux-按状态数组中的键查找对象并更新其另一个键
我正在开发一个CRUD应用程序,在后端使用NodeJS,在前端使用React+Redux。这是一个快速的模式,说明了其中的一切是如何工作的: 添加项目Node.js Redux-按状态数组中的键查找对象并更新其另一个键,node.js,reactjs,redux,react-redux,redux-thunk,Node.js,Reactjs,Redux,React Redux,Redux Thunk,我正在开发一个CRUD应用程序,在后端使用NodeJS,在前端使用React+Redux。这是一个快速的模式,说明了其中的一切是如何工作的: 添加项目 用户输入文章的标题 然后将标题发送给dispatch,dispatch在NodeJS中获取POST路由,并通过正文发送标题 在NodeJS路线中,我正在集合中添加一个具有该标题的新项目 后端完成,服务器中有新帖子 我在步骤2中的分派函数中添加了.then()。在其中,我使用类型发送一个操作:“ADD_POST”和POST:POST(我从NodeJ
POST
路由,并通过正文发送标题.then()
。在其中,我使用类型发送一个操作:“ADD_POST”
和POST:POST
(我从NodeJSres.json({POST:result from database})获得POST
)案例“ADD_POST”:return action.POST
PUT
route。然后
再次添加到获取NodeJS路由的分派中,在该分派中,我使用更新的类型'ADD_LIKE'
和post ID
分派操作案例'ADD_LIKE':
,它使用下面代码段中的代码遍历状态state.map(item => {
if(item.id === action.postid) {
//i find the specific item, but now im stuck on how to update the likes property of it
}
})
如果有帮助的话,这是我一直在看的播放列表,如果你想你可以看看这个家伙是如何实现删除功能的,我想使用相同的逻辑添加Likes功能:
第[1]
行创建一个新对象,该对象具有项
的所有相同属性,但它会覆盖现有属性likes
,并简单地添加1
确保您确实为reducer中更改的项创建了一个新对象,因为您状态中的所有内容都应该是不可变的
state.map(item => {
if (item.id !== action.postid) return item; // no need to change other items
const likes = item.likes;
return Object.assign({}, item, {likes: likes + 1}); // [1]
});