Vue.js Vuex状态有时为空(未定义),尤其是当我刷新页面时,有时它可以工作

Vue.js Vuex状态有时为空(未定义),尤其是当我刷新页面时,有时它可以工作,vue.js,vuejs2,vue-component,vuex,store,Vue.js,Vuejs2,Vue Component,Vuex,Store,Vuex状态有时为空(未定义),尤其是在刷新页面时。有时它也能起作用 行动: getSkills(上下文){ 让url=“/skills”; 常量头={ “x-api-key”:process.env.VUE_APP_SIRH_x_api_key, 授权:localStorage.getItem(“访问令牌”), }; 返回轴({ 方法:“获取”, url:url, 标题:标题, })。然后((响应)=>{ 提交(“getSkill”,response.data.data.skills); })

Vuex状态有时为空(未定义),尤其是在刷新页面时。有时它也能起作用

行动:

getSkills(上下文){
让url=“/skills”;
常量头={
“x-api-key”:process.env.VUE_APP_SIRH_x_api_key,
授权:localStorage.getItem(“访问令牌”),
};
返回轴({
方法:“获取”,
url:url,
标题:标题,
})。然后((响应)=>{
提交(“getSkill”,response.data.data.skills);
}).catch((e)=>{
控制台日志(e);
});
},
getter:

Skills:(state)=>state.Skills,
突变:

getSkill(状态、技能){
状态。技能=技能;
},
状态:

技能:[],
以及vue

计算:{
…映射状态({}),
…制图员([“候选人”、“技能”])
},
安装的(){
这是getSkills();
this.id=this.$route.params.id;
this.Skills.forEach(element=>this.skill_list.push(element.skill_name));
},
方法:{
…映射操作([“attachSkillCandidate”,“getSkills”]),
}
有人能帮我解决这个问题吗


谢谢

getSkills操作正在执行异步请求。您需要等待请求完成,然后才能访问此技能。否则,数据将不会被设置

您需要
async
wait
(“现代”解决方案):

async-mounted(){
等待这个;
this.id=this.$route.params.id;
this.Skills.forEach(element=>this.skill_list.push(element.skill_name));
}
或:

mounted(){
这个.getSkils()。然后(()=>{
this.id=this.$route.params.id;
this.Skills.forEach(element=>this.skill_list.push(element.skill_name));
});
}