Vue.js Can';我不知道为什么vuex getters ById没有得到一家公司的id

Vue.js Can';我不知道为什么vuex getters ById没有得到一家公司的id,vue.js,store,vuex,Vue.js,Store,Vuex,我还是VUEX新手,我正在学习本教程 唯一不同的是,我使用sequelize而不是像他那样使用mLab 这就是我的getter的样子 export const companyGetters={ 所有公司:(州,获取者)=>{ 返回国有企业 }, companyById:(state,getter)=>id=>{ 如果(getters.allcompanys.length>0){ 返回getters.allcompanys.filter(c=>c.\u id==id)[0] }否则{ 返回州公司

我还是VUEX新手,我正在学习本教程 唯一不同的是,我使用sequelize而不是像他那样使用mLab

这就是我的getter的样子

export const companyGetters={
所有公司:(州,获取者)=>{
返回国有企业
},
companyById:(state,getter)=>id=>{
如果(getters.allcompanys.length>0){
返回getters.allcompanys.filter(c=>c.\u id==id)[0]
}否则{
返回州公司
}
}
跟他做的一模一样

我的行为是这样的

companyById({commit},有效负载){
提交(按公司ID提交)
get(`${API_BASE}/companys/${payload}`)。然后(响应=>{
日志(有效负载、响应、数据)
提交(按公司ID提交成功,响应.数据)
})
}
下一个细节我有


从“../components/company/CompanyDetails”导入CompanyDetails
导出默认值{
创建(){
如果(!this.company.companyName){
this.$store.dispatch('companybyd',this.$route.params['id']))
}
},
计算:{
公司(){
返回此.store.getters.companyById(此.route.params['id'])
}
},
组成部分:{
“公司详细信息”:公司详细信息
}
}
最后,我的公司信息是这样的


{{公司}
导出默认值{
道具:[“公司”]
}
这是突变

export const companyMutations={
[所有公司](州){
state.showLoader=true
},
[所有公司的成功](状态、有效载荷){
state.showLoader=false
国营公司=有效载荷
},
[公司名称](州){
state.showLoader=true
},
[公司名称与成功](状态,有效载荷){
state.showLoader=false
state.company=有效载荷
}
这是我的行动

所有公司({commit}){
提交(所有公司)
get(${API\u BASE}/companys`)。然后(响应=>{
提交(所有公司的成功、响应、数据)
})
},
companyById({commit},有效负载){
提交(按公司ID提交)
get(`${API_BASE}/companys/${payload}`)。然后(响应=>{
日志(有效负载、响应、数据)
提交(按公司ID提交成功,响应.数据)
})
我的公司名单是这样的


从“./Company.vue”导入公司
导出默认值{
名称:'公司',
创建(){
if(this.companys.length==0){
此.$store.dispatch('所有公司')
}
},
计算:{
公司(){
返回此。$store.getters.allcompanys
}
},
组成部分:{
“公司”:公司
}
}
进口公司是这样的


{{company.companyName}
{{company.description}}
导出默认值{
名称:'公司',
道具:[“公司”]
}

因此,当我单击其中一个“公司”时,它应该按id获取它,并在getters中显示详细信息,但是返回
getters.allcompanys.filter(c=>c.\u id==id)[0]
返回未定义,当我刷新页面时,它会得到正确的公司并显示它,发生了什么请帮助。如果您需要更多信息,请询问

我会自动假设您的
\u id
字段是一个数字,但
$route.params.id
是一个字符串(因为从路径获取的所有信息都是字符串),这意味着您的筛选器返回一个空结果,因为他找不到匹配项。当我注销this.$route.params['id']时,我得到一个数字当我执行此console.log(getters.allcompanys.filter(c=>c.\u id))时,我得到[],当我执行console.log(getters.allcompanys.filter(c=>c.\u id==id)[0])我没有定义您在哪里初始化所有公司?请看一下更新的问题我添加了我的突变和操作我会自动假设您的
\u id
字段是一个数字,但是
$route.params.id
是一个字符串(因为从路径获取的每一次都是一个字符串),这意味着您的筛选器返回一个空结果,因为他找不到匹配项。当我注销this.$route.params['id']时,我得到一个数字当我执行此console.log(getters.allcompanys.filter(c=>c.\u id))时,我得到[],当我执行console.log(getters.allcompanys.filter(c=>c.\u id==id)[0])我没有定义你在哪里初始化所有公司?请看我添加了我的突变和动作的更新问题