VUEX Getter = 数组内过滤数组

我在 VUEX 中有一个 getter,我试图过滤数组内的数组,但不断收到有关修改 getter 内状态的警告。


错误:[vuex] 不要在突变处理程序之外改变 vuex 存储状态


我知道我可以在顶级数组上做一个简单的过滤器,但它似乎不适用于人员数组,我可以让它显示我想要的结果的唯一方法是执行以下操作(这是错误的)


for (const company of company.companies) {

      const filteredPeople: IPerson[] = company.people.filter(

        x => x.jobId === 1

      );

      company.people = filteredPeople;

    }


米琪卡哇伊
浏览 57回答 1
1回答

萧十郎

简而言之,您不能修改 getter 内部的状态,因为这很容易导致无限循环。此外,getter 并不意味着修改任何类型的外部状态,而只是返回(可能是翻译的)状态片段以进行进一步的数据表示。尝试这段代码,而不是修改状态,您将返回companies带有过滤的翻译副本people:return company.companies.map(c => ({...c, people: c.people.filter(p => p.jobId === 1)}))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript