vue3.js和pinia:为什么我的商店状态在Vuedevtools中不确定?

发布于 2025-01-29 07:46:34 字数 1361 浏览 2 评论 0原文

我使用的是vue 3与pinia ^2.0.14。我正在以main.ts喜欢的方式将PINIA导入到该应用中:

import { createPinia } from 'pinia'
import { createApp } from 'vue'
import App from './App.vue'

const pinia = createPinia()

const app = createApp(App).use(pinia).mount('#app')

我正在创建商店language.ts喜欢:

import { defineStore } from 'pinia'

export const useLanguageStore = defineStore({
  id: 'language',
  state: () => ({
    language: 'English',
    languages: ['English', 'Spanish'],
  }),
})

并在languageDropdown中使用它。 vue喜欢这样:

<script setup lang="ts">
import { useLanguageStore } from '@/store/language.ts'

const languageStore = useLanguageStore()
</script>

<template>
  <select
    v-model="languageStore.language">
    <option
      v-for="language in languageStore.languages"
      :key="language"
      :value="language"
    >
      {{ language }}
    </option>
  </select>
</template>

代码按预期工作,但是在Vue DevTools Inspector languagestore.languagelanguagestore.languages.languageslanguage.State < /代码>是未定义的。为什么会这?

vue devtools Inspector的屏幕截图

I am using Vue 3 with Pinia ^2.0.14. I'm importing Pinia into the app in main.ts like so:

import { createPinia } from 'pinia'
import { createApp } from 'vue'
import App from './App.vue'

const pinia = createPinia()

const app = createApp(App).use(pinia).mount('#app')

I'm creating the store language.ts like so:

import { defineStore } from 'pinia'

export const useLanguageStore = defineStore({
  id: 'language',
  state: () => ({
    language: 'English',
    languages: ['English', 'Spanish'],
  }),
})

and using it in LanguageDropdown.vue like so:

<script setup lang="ts">
import { useLanguageStore } from '@/store/language.ts'

const languageStore = useLanguageStore()
</script>

<template>
  <select
    v-model="languageStore.language">
    <option
      v-for="language in languageStore.languages"
      :key="language"
      :value="language"
    >
      {{ language }}
    </option>
  </select>
</template>

The code works as expected, but in the Vue devtools inspector languageStore.language, languageStore.languages, and language.state are undefined. Why would that be?

screen shot of Vue devtools inspector

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情痴 2025-02-05 07:46:34

我找到了解决它的问题,尽管我认为它不是完美的

// should use computed
const languages = computed(() => languageStore.languages )

I found a away to solve it, though I think its not perfect

// should use computed
const languages = computed(() => languageStore.languages )

泪眸﹌ 2025-02-05 07:46:34

也许您需要正确安装PINIA在您的应用中

import { createApp } from 'vue'
import { createPinia } from 'pinia'
import App from './App.vue'

const pinia = createPinia()
const app = createApp(App)

app.use(pinia)
app.mount('#app')

我使用此代码,并且我的Pinia工作很好

我在pinia商店的结果

Maybe you need correct install pinia in your App

import { createApp } from 'vue'
import { createPinia } from 'pinia'
import App from './App.vue'

const pinia = createPinia()
const app = createApp(App)

app.use(pinia)
app.mount('#app')

I use this code and my Pinia work is good

my result in pinia store

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文