Reactjs 从mongoDB中删除项目

Reactjs 从mongoDB中删除项目,reactjs,mongodb,express,redux,Reactjs,Mongodb,Express,Redux,所以我有一个react/redux应用程序,基本上是你的标准电影搜索应用程序。但是,当我从愿望列表组件中删除项目时,我遇到了一点小麻烦。当用户第一次保存一部电影时,它会被发送到愿望列表,其中包含来自通用响应的信息,但是在后端,它会像往常一样为每部电影分配一个objectID。问题是,当您第一次加载愿望列表时,愿望列表中的我的电影没有objectID。直到您刷新浏览器,电影才具有objectID。我希望用户能够在看到电影显示在“愿望列表”选项卡中时立即将其从愿望列表中删除,但我用于删除的方法是查找

所以我有一个react/redux应用程序,基本上是你的标准电影搜索应用程序。但是,当我从愿望列表组件中删除项目时,我遇到了一点小麻烦。当用户第一次保存一部电影时,它会被发送到愿望列表,其中包含来自通用响应的信息,但是在后端,它会像往常一样为每部电影分配一个objectID。问题是,当您第一次加载愿望列表时,愿望列表中的我的电影没有objectID。直到您刷新浏览器,电影才具有objectID。我希望用户能够在看到电影显示在“愿望列表”选项卡中时立即将其从愿望列表中删除,但我用于删除的方法是查找objectID,如我所述,该objectID在刷新页面之前不会显示。从愿望列表中删除电影可以在页面刷新后工作,但这不是一个非常愉快的用户体验。我最好的解决办法是什么?不需要重新加载页面就可以删除电影。请用新手的术语。代码如下

export const removeMovie = (id) => async dispatch => {
  try {
    await axios.delete(`/wishlist/${id}/delete`)
    dispatch({
      type: REMOVE_MOVIE,
      payload:id
    })
  } catch (error) {
    console.log('unable to delete movie')
    console.error(error)
  }
}

在React应用程序上,当您在愿望列表中显示电影时,您有钥匙吗?如果可能,在React应用程序中添加代码来处理此操作如果文本块被整理好,我会尽力提供帮助/问题到底是什么当你将电影添加到愿望列表时,你写了一些没有id但你想删除它时需要该id的内容?当您添加某些内容时,会调度哪些操作,这些操作中的数据是什么?它们如何改变状态?当您将某些内容添加到wishlist时,您没有获得id,为什么不将其保存到此时的状态?您必须按对象id删除项目,还是可以使用API设置的单个电影id删除对象?
 case REMOVE_MOVIE:
            return{...state, wishlist:state.wishlist.filter(movie => movie._id !== payload)}
router.delete('/:id/delete', auth, async  (req, res)=>{
    const movie = await Movie.findByIdAndRemove(req.params.id)

    if(!movie){
        res.send('Movie not found')
    } else{
        movie.remove()
        res.send('movie deleted')
    }

})