Bonjour,
Avec cette ligne :
reader.onload = this.changeImg(i, reader)
tu n'attends pas l'évènement pour exécuter ta fonction, tu l'exécutes tout de suite et donne son retour (undefined) à onload.
Il te faut lui passer une fonction qui exécutera ce code :
reader.onload = (event) => this.changeImg(i, reader);
Et en effet le nom de ton paramètre event dans la fonction changeImg(i, event) prête à confusion : il s'agit de ton reader.
Mais avec ton code actuel, cet évènement ne surviendra jamais. Il te faut appeler l'une des fonctions readAs* pour lancer la lecture. En l'occurrence ici readAsDataURL() en passant le fichier en paramètre.
Sinon if ($(this.file[i]).get(0).files[0]) s'écrit plus simplement : if (this.file[i].files[0]).
Partager