全局可观察对象“未在实例上定义,但在渲染期间引用”

Global Observable "is not defined on the instance but referenced during render"

提问人:Sam 提问时间:11/10/2023 最后编辑:yoduhSam 更新时间:11/11/2023 访问量:18

问:

我有以下代码:main.js

Vue.prototype.$globalData = Vue.observable({
  count: 0
});

我尝试通过以下方式在不同的组件中访问此类可观察对象

<template>
  <div>
    {{ $globalData.counter }}
  </div>
</template>

但我收到以下错误:

[Vue warn]:属性或方法“$globalData”未在实例上定义,但在渲染过程中被引用。通过初始化此属性,确保此属性在 data 选项中是反应式的,或者对于基于类的组件而言。见:https://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties。

建议的链接中没有提到可观察对象,所以我对解决方案应该是什么感到有些迷茫。据我所知,其他人可以运行与我非常相似的代码(见这里)。


编辑:我知道该消息在技术上是一个警告(),但它相当重要,因为它阻止了我的组件加载。[Vue warn]

vue.js vuejs2 编译器错误 全局变量

评论

0赞 yoduh 11/11/2023
请确保在创建 Vue 实例之前在 main.js 中定义。我相信你的错误通常来自之后的定义。此外,您的模板代码会在应该引用时引用Vue.prototype.$globalDatanew Vue({...})countercount

答: 暂无答案