Nuxt(Vue2)项目报错campaign已赋值未使用/未定义如何解决?
问题根因分析
核心问题是const声明的变量存在块级作用域限制,仅在声明所在的{}代码块内有效:
- 你在
if、else分支内部分别用const声明的campaign,仅在各自分支的代码块内生效,出了分支块就会被销毁,因此两个分支内声明的变量完全没有被用到,直接触发no-unused-vars报错 - 分支外部没有声明过
campaign变量,你直接在最后一行读取campaign.data属于访问未定义的全局变量,因此触发no-undef报错
修复方案
将campaign的声明提升到if/else的父作用域即可,注意因为后续需要重新赋值,所以要用let声明而不是const:
// 外层先声明变量 let campaign if( share_token ) { campaign = await this.$api.campaigns.getSharedCampaign(share_token); } else { campaign = await this.$api.campaigns.getCampaign(state.id); } const data = campaign.data;
内容的提问来源于stack exchange,提问作者Čamo
相关产品推荐
相关产品推荐

