Heim  >  Fragen und Antworten  >  Hauptteil

Warum wird die Vue-Komponente nach dem Ändern des Pinia-Status (Entfernen des Objekts im Array) nicht erneut gerendert?

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粉763748806P粉763748806293 Tage vor379

Antworte allen(1)Ich werde antworten

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

    Antwort
    0
  • StornierenAntwort