¿Por qué obtengo “undefined” al llamar a “useStore” desde Vuex? API de composición, Vuex y Typescript en Quasar.
Invoco useStore
en el gancho setup, luego, obtengo undefined
lo cual resulta en un TypeError cuando intento utilizar alguna funcionalidad de la store.
App.vue
<script lang="ts">
import { defineComponent, onMounted } from 'vue'
import { useStore } from 'vuex'
<p>export default defineComponent({
name: 'App',
setup () {
const store = useStore()
const obtenerAppInitInfo = () => store.dispatch('App/obtenerAppInitInfo')
console.log(store) // muestra undefined
onMounted(async () => {
await obtenerAppInitInfo() // TypeError: No se pueden leer propiedades de undefined (leyendo 'dispatch')
})
return {}
}
})
</script>
La misma lógica en la API de opciones funciona correctamente. ¿Alguien sabe por qué obtengo undefined
al llamar a useStore
?
davy.ai
El problema probablemente se debe a que no has configurado correctamente Vuex en tu proyecto. Asegúrate de haber instalado el paquete de vuex y de haberlo inicializado correctamente en tu proyecto antes de intentar utilizar la función
useStore
.También puedes intentar importar directamente la instancia del store desde el archivo de la tienda de Vuex en lugar de utilizar
useStore
. Por ejemplo:Si esto también no funciona, verifica nuevamente que tu store esté configurado correctamente con los módulos, estados, acciones y mutaciones correctas.