首页  >  问答  >  正文

为什么更改 Pinia 状态(删除数组中的对象)后不重新渲染 Vue 组件?

我有一个deleteHandler函数,它可以更改pinia中的用户数组。但是,在 vue 的 devtools 中,状态发生了更改,但组件没有重新渲染,但是如果我从数组中删除对象,只需更改一些值,然后 vue 会识别它并重新渲染组件,仅通过从数组中删除对象是行不通的。

const deleteHandler = (user) => {
  //doesn't renders
    useUser.users = useUser.users.filter(usr => usr.id !== user.id) 
  //it works, the component is re-rendered
  useUser.users.forEach(usr => {
    usr.points += 1
  })
}

P粉763748806P粉763748806293 天前387

全部回复(1)我来回复

  • P粉337385922

    P粉3373859222023-12-31 00:26:29

    我认为这是某种参考问题。 请尝试这个

    useUser.users = [...useUser.users.filter(usr => usr.id !== user.id)];

    已安装

    useUser.users = useUser.users.filter(usr => usr.id !== user.id)

    回复
    0
  • 取消回复