繁体   English   中英

为什么在更改 Pinia state(删除 Array 中的一个 object)后不重新渲染 Vue 组件?

[英]Why doesn't re-render Vue the component after changing the Pinia state (deleteing an object in Array)?

我有一个 deleteHandler function,它更改了 pinia 中的用户数组。 然而,在vue的devtools中,state被改变了,但是组件没有重新渲染,但是如果我从数组中删除object,只改变一些值,然后vue识别它并重新渲染组件,仅通过从数组中删除 object 是行不通的。

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
  })
}

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

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

代替

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM