Tengo el siguiente código
Devuelve una cadena cuando está en la función reader.onload pero nula cuando i console.log image.Url en la función externa
EDITAR: Este es el código completo
export default { data() { return { item: { image: null }, imageUrl: null, }; }, methods: {, uploadImage(e) { let image = e.target.files[0]; const reader = new FileReader(); reader.readAsDataURL(image); reader.onload = function(){ this.imageUrl = reader.result console.log(this.imageUrl) // this.setImageOne(this.imageUrl) } console.log(this.imageUrl) },EDITAR:
Arreglado. Gracias a todos
Las cosas no suceden en el orden esperado.
Este es el orden en que están sucediendo:
function(){ this.imageUrl = reader.result console.log(this.imageUrl) // this.setImageOne(this.imageUrl) } Esta función no se ejecuta cuando se define. Js solo ejecuta la función de devolución de llamada que proporciona cuando ocurre el evento de carga. Registra esta devolución de llamada y luego continúa con console.log .
Si desea utilizar el valor de imageUrl, debe hacerlo en la función de devolución de llamada.