Estoy tratando de mover alguna funcionalidad a un vue mixin del componente, para poder usarla en múltiples componentes.
Esta (versión simplificada del código) funciona:
export default { data() { return { file: {}, audioPlayer: { sourceFile: null, }, }; }, watch: { 'audioPlayer.SourceFile': function (nextFile) { console.log('new sourceFile'); this.$data.file = nextFile; }, } }Pero si muevo el objeto de datos del reproductor de audio a una mezcla, el reloj ya no se dispara.
¿Es este el comportamiento esperado?
Nb, resolví esto al convertir directamente la propiedad de datos 'archivo' en un valor calculado, lo que funciona en este caso particular, pero el comportamiento sigue siendo extraño.
Necesitas una s minúscula. archivo sourceFile no SourceFile
watch: { 'audioPlayer.sourceFile': function (nextFile) { console.log('new sourceFile'); this.$data.file = nextFile; }, }