Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript VUEX Getter=阵列内部的过滤器阵列_Javascript_Typescript_Vue.js_Vuejs2_Vuex - Fatal编程技术网

Javascript VUEX Getter=阵列内部的过滤器阵列

Javascript VUEX Getter=阵列内部的过滤器阵列,javascript,typescript,vue.js,vuejs2,vuex,Javascript,Typescript,Vue.js,Vuejs2,Vuex,我在VUEX中有一个getter,我试图过滤数组中的数组,但不断收到关于修改getter中状态的警告 错误:[vuex]不在变异处理程序之外变异vuex存储状态 我知道我可以在顶级数组上做一个简单的过滤器,但在人物数组上似乎不起作用,我能让它显示我想要的结果的唯一方法是执行以下操作(这是错误的) 简而言之,您不能修改getter内部的状态,因为它很容易导致无休止的循环。此外,getter并不意味着要修改任何类型的外部状态,而只是返回(可能已翻译)一段状态以进一步表示数据。尝试这段代码,而不是修改

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

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

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


简而言之,您不能修改getter内部的状态,因为它很容易导致无休止的循环。此外,getter并不意味着要修改任何类型的外部状态,而只是返回(可能已翻译)一段状态以进一步表示数据。尝试这段代码,而不是修改您正在返回带有筛选的
人员的
公司的翻译副本的状态:


返回company.companys.map(c=>({…c,people:c.people.filter(p=>p.jobId==1)}))

这很可能是因为您分配的是
company.people=filteredPeople
,请尝试在
mutation
中执行,而不是在
操作中执行。您是否可以添加给您错误的代码,而不是工作正常但错误的代码?@maxshuty代码上面给出的vuex错误
返回company.companys.map(c=>({…c,people:c.people.filter(p=>p.jobId==1)}))
for (const company of company.companies) {
      const filteredPeople: IPerson[] = company.people.filter(
        x => x.jobId === 1
      );
      company.people = filteredPeople;
    }