vue.js 尝试使用forEach循环更新会话值

lb3vh1jj  于 2023-02-05  发布在  Vue.js
关注(0)|答案(1)|浏览(147)

在一个管理员配置文件中,我有一个显示会话历史的列表。我创建了一个按钮来删除isActive = false的所有会话。要查看结果,我必须刷新页面。我希望数据动态更新。
我尝试使用forEach循环来检查会话是否为isActive = false,删除会话并更新会话。
这是我所做的,但它只删除2 - 3原始的会话。它应该删除所有不活动的会话。

import { defineStore } from "pinia";

import axios from "axios";

export const useAuthenticationStore = defineStore({
  id: "authenticationStore",
  state: () => ({
    session: null,
    sessions: [],

    loaders: {
      login: false,
      logout: false,
      retrieveSession: false,
      retrieveSessions: false,
      deleteInactiveSessions: false,
    },
  }),

getters: {
    admin: (state) => state.session?.admin,
  },

  actions: {
     async deleteInactiveSessions(id) {
          const apiRoute = `/api/inactive-sessions`;
          try {
            this.loaders["deleteInactiveSessions"] = true;
            const deletedInactiveSessions = await axios.delete(apiRoute);
            console.log(deletedInactiveSessions);
            this.sessions.forEach(() => {
              const deletedInactiveSessionsIndex = this.sessions.findIndex(
                (session) => session.id === deletedInactiveSessions.id
              );
              return this.sessions.splice(deletedInactiveSessionsIndex);
            });
          } finally {
            this.loaders["deleteInactiveSessions"] = false;
          }
        },

下面是deletedInactiveSessions返回给我的内容:
{data:{...},状态:200,状态文本:"确定",标题:AxiosHeader,配置:{...},...}配置:{过渡:{...},转换请求:数组(1),转换响应:数组(1),超时:0,适配器:,...}数据:{count:3}个标题:AxiosHeaders {访问控制允许凭据:'true',访问控制允许来源:"*",连接:'close',内容长度:"11",内容安全策略:"默认源代码'自己';碱基-uri 'self';阻止所有混合... https:"不安全在线";升级-不安全-请求",...}请求:XMLHttp请求{已就绪状态更改:空,就绪状态:4、超时:0,具有凭据:假,上传:XMLHttpRequestUpload,...}状态:200状态文本:"OK"原型:对象

4dbbbstv

4dbbbstv1#

看起来您只想从列表中删除具有特定ID的会话:

this.sessions = this.sessions.filter(session => session.id !== deletedInactiveSessions.id)

从名称来看,我假设deletedInactiveSessions是一个数组,因此您应该这样做:

this.sessions = this.sessions.filter(session => !deletedInactiveSessions.includes(session.id))

相关问题