Vue中created钩子赋值checkValue为true后对应模板不显示问题咨询
问题排查与解决
现存代码错误点
- data选项语法错误:
return后面多写了冒号,属于JavaScript语法错误,会直接导致data初始化失败,checkValue、loading两个变量不会被挂载到Vue实例上,取值全为undefined。 - 模板内v-if语法错误:Vue模板中访问实例属性不需要加
this,写this.checkValue时模板无法正确读取到实例上的变量值,判断永远为假。 - 模板标签未闭合:
a-radio-group组件标签缺少闭合的>,属于模板解析错误,会导致该区域DOM无法正常渲染。
排查思路
- 第一步优先打开浏览器控制台(F12-Console面板),语法类错误(包括JS语法、Vue模板语法)都会直接抛出红色报错,根据报错信息可以快速定位90%的基础写法问题。
- 第二步验证变量状态:可以在created钩子中打印
this.checkValue确认赋值是否生效,也可以在模板中临时插入{{ checkValue }}输出变量的实时值,判断是赋值逻辑问题还是模板绑定问题。 - 第三步排查模板语法:检查指令写法、标签闭合、组件传值等基础模板规则是否符合Vue规范。
修正后代码
script部分
data() { // 移除return后的冒号 return { checkValue: false, loading: 'success', } }, created() { if (this.loading === 'success') { this.checkValue = true; } }
template部分
<!-- 移除v-if中的this,补全a-radio-group的闭合标签 --> <div v-if="checkValue"> <div class="row"> <div class="col-lg-12"> <a-form-item label="Photo Background Spotlight"> <a-radio-group> <a-radio value="1">Jony</a-radio> <a-radio value="2">veart</a-radio> </a-radio-group> </a-form-item> </div> </div> </div>
内容的提问来源于stack exchange,提问作者deskeay
相关产品推荐
相关产品推荐

