javascript - Odefinierad Array


  public onChange(event: Event) {
    let files = event.target['files'];
    let list: string[];
    console.log(files);
    for (var i = 0; i < files.length; i++) {
      if (FileReader && files && files.length) {
        let fileReader = new FileReader();
        fileReader.onload = () => {
          let infoFile: string = fileReader.result;   
          list.push(infoFile);         
        };
        fileReader.readAsDataURL(files[i]);
      }
    }
    console.log(list);
    let preview = document.querySelector('img');
    preview.src = list[0];
  };

Jag har en metod i min component.ts när jag klickar på input type="file" som kallas metod onChange(), men när jag lämnar loop för i konsolen får jag meddelandet att arrayen är odefinierad. Jag har kontrollerat att fileReader.result inte är tomt. Varför händer detta? Hur löser man detta problem, någon idé.

Svar #1

du måste initialisera listan först:

let list: string[] = [];

när du bara gör

let list: string[]

Du säger bara till kompilatorn att denna variabel kommer att vara en array av strängar. Men vid körning är den odefinierad, eftersom du inte initialiserade den ändå.