我在 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)}))
添加回答
举报
0/150
提交
取消