You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue项目中出现‘Cannot set property innerHTML of null’错误的问题咨询(含数组展示需求)

解决Vue中"Cannot set property 'innerHTML' of null"错误

嘿,我来帮你搞定这个Vue的错误问题,顺便给你提供靠谱的实现方式~

错误原因分析

你碰到的这个报错,核心问题是DOM渲染时机不对。在Vue组件的<script>标签里直接写document.getElementById的时候,组件的模板还没被渲染到页面上——也就是说<div id="demo">和<div id="demo1">这两个元素此时压根不在DOM树里,getElementById找不到它们自然返回null,那设置innerHTML肯定就报错啦。

正确实现方案

方案一:用Vue插值语法(最推荐,符合Vue设计思想)

Vue是数据驱动视图的框架,咱们完全没必要手动操作DOM,直接用插值语法把数据渲染到模板里就好:

<template>
  <div>
    <div>{{ formulaOneTeams }}</div>
    <div>{{ formulaOneTeams.join(" * ") }}</div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      formulaOneTeams: ["Red Bull", "Mercedes", "Ferrari", "Mclaren", "Aston Martin", "Alpine Racing", "Haas", "Williams", "Alpha Tauri", "Alfa Romeo"]
    }
  }
}
</script>
<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

这里把数组放到组件的data选项里,模板里用{{ }}就能直接渲染数据,Vue会自动帮你处理好DOM渲染的时机,省心又规范。

方案二:用mounted生命周期钩子(适合必须手动操作DOM的场景)

如果你确实有需要手动操作DOM的场景(比如集成某些复杂第三方库),可以把DOM操作的代码放到Vue的mounted钩子中——这个钩子会在组件挂载完成(DOM已经渲染到页面)后才执行:

<template>
  <div>
    <div id="demo"></div>
    <div id="demo1"></div>
  </div>
</template>
<script>
export default {
  mounted() {
    const formulaOneTeams = ["Red Bull", "Mercedes", "Ferrari", "Mclaren", "Aston Martin", "Alpine Racing", "Haas", "Williams", "Alpha Tauri", "Alfa Romeo"];
    document.getElementById("demo").innerHTML = formulaOneTeams;
    document.getElementById("demo1").innerHTML = formulaOneTeams.join(" * ");
  }
}
</script>
<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

注意哦,代码要放到export default对象的mounted方法里,而不是直接写在script顶层,这样才能确保DOM元素已经存在时再执行操作。

内容的提问来源于stack exchange,提问作者Dian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 07:42:31