为了账号安全,请及时绑定邮箱和手机立即绑定

VUEX Getter = 数组内过滤数组

VUEX Getter = 数组内过滤数组

米琪卡哇伊 2023-11-12 15:04:57
我在 VUEX 中有一个 getter,我试图过滤数组内的数组,但不断收到有关修改 getter 内状态的警告。错误:[vuex] 不要在突变处理程序之外改变 vuex 存储状态我知道我可以在顶级数组上做一个简单的过滤器,但它似乎不适用于人员数组,我可以让它显示我想要的结果的唯一方法是执行以下操作(这是错误的)for (const company of company.companies) {      const filteredPeople: IPerson[] = company.people.filter(        x => x.jobId === 1      );      company.people = filteredPeople;    }
查看完整描述

1 回答

?
萧十郎

TA贡献1815条经验 获得超12个赞

简而言之,您不能修改 getter 内部的状态,因为这很容易导致无限循环。此外,getter 并不意味着修改任何类型的外部状态,而只是返回(可能是翻译的)状态片段以进行进一步的数据表示。尝试这段代码,而不是修改状态,您将返回companies带有过滤的翻译副本people

return company.companies.map(c => ({...c, people: c.people.filter(p => p.jobId === 1)}))


查看完整回答
反对 回复 2023-11-12
  • 1 回答
  • 0 关注
  • 103 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信