我用 Typescript 创建了一个新的 VueJS 3 项目。此外,我添加了 Vuex 4 作为我的商店。但是我无法弄清楚将商店导入到我的 Vue 组件中我做错了什么。
目前,我在浏览器的控制台中收到错误: 未捕获(承诺中)TypeError:无法读取 null 的属性“parentNode”
我必须如何导入我的商店才能在我的组件中使用它?
// main.ts
import { createApp } from 'vue';
import App from './App.vue';
import { store, key } from "./store/store";
createApp(App)
.use(store, key)
.mount('#app')
// store.ts
import {InjectionKey} from "vue"
import {createStore, useStore as baseUseStore, Store} from "vuex"
export interface State {
...
}
export const key: InjectionKey<Store<State>> = Symbol()
export const store = createStore<State>({
state: {
someArray: [{...}]
},
mutations: {},
getters: {
getObjects: (state) => state.someArray
}
})
export function useStore() {
return baseUseStore(key)
}
// Component
<template>...</template>
<script lang="ts">
import {defineComponent} from "vue";
import {useStore} from "../store/store";
export default defineComponent({
name: 'Comp',
data() {
return {
store: null,
}
},
computed: {
something() {
return this.store.getters.getObjects
}
},
setup() {
const store = useStore()
return store
}
}