VueJS: llamar a una función en otro componente
Resueltoarscy Mensajes publicados 196 Estado Miembro -
Hola,
Si entre ustedes hay adeptos de VueJS (TypeScript)...
No logro resolver un problema actual:
Dispongo de una vista compuesta por dos componentes.
Quiero hacer que se ejecute una función en un componente B [si y solo si] cuando una variable v se actualiza en un componente A.
He puesto en marcha un store que permite tener acceso a la variable v desde los componentes A y B sin problema.
Naturalmente pensé en implementar un evento. He intentado 2 enfoques vía "emit" que se desintegraron lamentablemente por su cuenta en el marco en que VueJS no parece permitir el uso de '$on', que no es nativo de este código.
Luego intenté crear un bus de eventos personalizado, y una vez más, no funciona (la instanciación de un Vue() no es válida en VueJS 3.x)
Finalmente probé pasar por "inject/provide", que parecía ser una solución atractiva de primer momento (inyección de un método para hacerlo disponible en otro componente) pero no funciona y de hecho eso me complica más las cosas.
Dejé de lado las props o los "computed", sin ver cómo sacarles provecho, aunque tengo la impresión de que un computed podría, no sé muy bien, dar frutos?
Me dije que podría intentar colocar un formulario oculto en el 2.º componente para poder enlazar fácilmente la llamada a la función, pero aún me falta el disparador para ejecutar la función en ese caso.
¿Tendrías pistas / sugerencias para ayudarme a salir de esto rápido?
Gracias de antemano
1 respuesta
-
Una solución podría ser implementar el método en el Store.
--> colocar una variable con un listener sobre ella, que desencadene la función.
El componente A actualiza la variable var1Store del store,
El listener colocado sobre la variable var1Store llama a la función funcStore
La función funcStore modifica una variable var2Store
El componente B solo tiene que gestionar la visualización de var2Store.