在一个管理员配置文件中,我有一个显示会话历史的列表。我创建了一个按钮来删除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"原型:对象
1条答案
按热度按时间4dbbbstv1#
看起来您只想从列表中删除具有特定ID的会话:
从名称来看,我假设
deletedInactiveSessions
是一个数组,因此您应该这样做: