Warum wird die Vue-Komponente nach dem Ändern des Pinia-Status (Entfernen des Objekts im Array) nicht erneut gerendert?
P粉763748806
P粉763748806 2023-12-30 14:57:42
0
1
452

Ich habe eine deleteHandler-Funktion, die das Benutzerarray in Pinia ändert. In den Devtools von vue ändert sich jedoch der Status, aber die Komponente wird nicht erneut gerendert. Wenn ich jedoch das Objekt aus dem Array entferne, ändere ich einfach einige Werte, dann erkennt Vue es und rendert die Komponente erneut, indem es sie einfach aus dem Array entfernt Array-Objekte funktionieren nicht.

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粉763748806
P粉763748806

Antworte allen(1)
P粉337385922

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

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

已安装

useUser.users = useUser.users.filter(usr => usr.id !== user.id)
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage