完全错误return this.$store.state.counter
:
类型“CreateComponentPublicInstance<{}, {}, {}, { counter(): any; 上不存在属性“$store” }, {}, ComponentOptionsMixin, ComponentOptionsMixin, EmitsOptions, {}, {}, ... 7 更多 ..., {}>'.Vetur(2339)
属性“$store”不存在于类型“CreateComponentPublicInstance<{}、{}、{}、{}、{}、ComponentOptionsMixin、ComponentOptionsMixin、EmitsOptions、{}、{}、false、OptionTypesType<{}、... 4 个 ...,{}>,... 5 个 ...,{}>'.Vetur(2339)
这是一个干净的 Vue 项目(vue create v-vuex),具有以下 CLI 配置:
- Vue 3.x(预览版)
- 没有类风格的组件语法
- 是的 Babel 和 TypeScript
- ESLint + Prettier linter和格式化程序
- 保存时棉绒
- 专用配置文件
所有文件都是通过 Vue CLI 创建的具有默认项目结构的默认文件。
index.ts 文件:
import { createStore } from "vuex";
export default createStore({
state: {
counter: 8,
},
mutations: {},
actions: {},
modules: {},
});
应用程序.vue 文件:
<template>
<h2>{{ counter }}</h2>
</template>
<script lang="ts">
import { defineComponent } from "vue";
export default defineComponent({
name: "App",
components: {},
computed: {
counter() {
return this.$store.state.counter;
},
},
});
</script>
main.ts 文件:
import { createApp } from "vue";
import App from "./App.vue";
import store from "./store";
createApp(App).use(store).mount("#app");
我正在学习 Vue,我想访问 Vuex 存储状态属性。基本反例。
只有当我通过模板中的插值直接使用它时,我才能访问计数器状态,例如{{ $store.state.counter }}
,但是一旦我想使用一个返回的计算属性,我就无法使用关键字this访问 $store 。
return this.$store.state.counter
不工作
我的编码设置:
- VSCode,最新版本
- NPM 和 Vue CLI
- 维特尔
- ESLint
- 更漂亮
我在不同的项目设置中做了同样的例子,例如“没有 TypeScript”和“使用 Class-Style 组件语法”,但在前一种情况下,我的 Vetur 不起作用所以它是不可接受的(不确定它是否会出错),在后一种情况下,它可以工作,但我不熟悉语法,而且由于我没有经验,甚至考虑学习课堂风格来解决这个问题都是压倒性的。
编辑:有类似的问题,但没有一个与新的 Vue CLI 项目有关。