unable to edit data in reducer for put method
我正在创建一个现代应用程序,并且试图编辑所选项目的数据。当我点击编辑时,数据在mongodb和express server logger中进行编辑,但在redux logger响应中却没有,在编辑之前我得到状态的响应。我不确定到底是什么问题..
数据示例
1 2 3 4 5 | { _id:1, title:'title', description:"description" } |
当我将
减速器
1 2 3 4 5 6 7 8 9 10 | case projectActions.UPDATE_PROJECT: { return { ...state, project:state.project.map( item => (item._id===action.payload.data._id) ? action.payload.data:item) } } |
更新操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | function updateProjectAction(response){ return { type:UPDATE_PROJECT, payload:response } } export function updateProject(id,updatedVal){ return (disptsh, getState) => { return Project.editProject(id,updatedVal) .then(response=>disptsh(updateProjectAction(response))) .catch((error)=>disptsh(getError(error))) } } |
发送编辑动作
1 | this.props.actions.updateProject(this.props._id,{title:this.state.title}) |
更新快速中间件
1 2 3 4 5 | router.put('/api/project/:id',function(req,res,next){ Project.findByIdAndUpdate(req.body._id, req.body, function(err, updatedProject){ res.json(updatedProject) }) }) |
在进行了一些研究之后,根据本文,我发现问题出在
要解决此问题,我必须设置
1 2 3 4 5 | router.put('/api/project/:id',function(req,res,next){ Project.findByIdAndUpdate(req.body._id, req.body, { new: true} , function(err, updatedProject){ res.json(updatedProject) }) }) |