Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

319
Vistas
¿Por qué tengo el error `inyección "tienda" no encontrada` cuando intento `this.store.commit()`?

Estoy tratando de almacenar valores usando VueX. Estoy usando Vuex 4.0 no el 3.0.

Así que estoy tratando de comprometer un valor como este, como estaba acostumbrado en Vuex 3:

 ... this.$store.commit("changerusername", u) ...

Así que probé esto:

Dentro de mi main.js tengo esto:

 import { createApp } from "vue"; import { store } from "./store"; import App from "./App.vue"; const app = createApp(App); app.use(store); app.mount("#app");

Dentro de mi store/store.js , tengo esto:

 import vue from "vue"; import { createStore } from "vuex"; export const store = createStore({ state: { username: null, token: null, }, getters: { getUsername: function (state) { return `${state.username}`; }, }, mutation: { changeusername: function (state, newusername) { state.username = newusername; } }, });

App.vue tiene esto:

 <template> <router-view /> </template> <script> import { defineComponent } from "vue"; export default defineComponent({ name: "app", }); </script>

Ok ahora, dentro del archivo donde quiero hacer mi compromiso, escribí esto:

Importaciones:

 import { useQuasar } from "quasar"; import { defineComponent } from "vue"; import { ref } from "vue"; import axios from "axios"; import { useStore } from "vuex";

La puesta en marcha :

 setup() { const store = useStore(); return { store, }; },

Y lo uso así:

 loginArrow: function (u, p) { this.store.commit("changeusername", u); },

Pero cuando hago esto, aparece este error: injection "store" not found. .

¿Que estoy haciendo mal?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Si está utilizando la API de composición, puede cambiar su función loginArrow a algo como esto porque la palabra clave this no funciona en la API de composición:

 const loginArrow = (u, p) => { store.commit("changeusername", u); }

También puede intentar usar store.value.commit(...) en lugar de store.commit(...)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Encontré la razón por la que eso no funcionaba. no estaba en la función sino en el quasar directamente.

En la carpeta app/.quasar hay 4 archivos app.js, client-entry.js, client-prefetch.js y quasar-user-options.js.

Normalmente se configura automáticamente, pero no sé por qué quasar no lo hizo, así que lo hice manualmente comparándolo con otro proyecto.

Gracias por la ayuda !

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda