Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

299
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!