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

202
Vistas
Vue 3: inyectar () solo se puede usar dentro de la configuración () o componentes funcionales

Estoy usando la biblioteca de componentes de PrimeVue e intento llamar a useToast() desde dentro de mi propia función de composición personalizada, pero me arroja este error:

[Vue warn]: inject() solo se puede usar dentro de setup() o componentes funcionales.

Aquí está mi función de composición:

 import axios from 'axios' import { useToast } from 'primevue/usetoast' export function useAxiosInterceptors() { const addResponseInterceptors = () => { axios.interceptors.response.use( (error) => { if (error.response?.status == 401) { showErrorToast( 'Session expired', 'It looks like you do not have a valid access token.' ) return Promise.reject(error) } ) } const showErrorToast = (summary, detail) => { const toast = useToast() // <-------- this causes the error toast.add({ severity: 'error', summary: summary, detail: detail, life: 3000 }) } return { addResponseInterceptors } }

Uso esta función de composición en mi archivo main.ts

 import { useAxios } from '@/services/useAxios' const { configureAxios } = useAxios() configureAxios()
about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

use composables están destinados principalmente para ser utilizados directamente dentro de la función setup . Es posible usar algunos de ellos en el exterior, pero esto se decide según el caso según los componentes internos componibles.

El error significa que este parece usar provide/inject y, por lo tanto, está destinado a usarse estrictamente dentro de la jerarquía de componentes, y es incorrecto usarlo en cualquier otro lugar. Dado que los brindis se muestran mediante el componente Toast , se debe crear una instancia de la aplicación de cualquier forma para poder hacer esto.

En este caso, el interceptor Axios podría configurarse dentro de un componente lo antes posible, es decir, dentro de la función de setup del componente raíz.

about 4 years ago · Santiago Trujillo 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