2017-08-08 68 views
2
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]; 
    }; 

我在我的component.ts当我单击输入类型=“文件”调用medthod onChange()但当左循环在控制台我有消息,数组是未定义的方法。我检查fileReader.result不是空的为什么发生这种情况?如何解决这个问题的一些想法。未定义的数组

回答

6

,你必须首先初始化列表:

let list: string[] = []; 

当你做到这

let list: string[] 

你只告诉编译器,这个变量将是一个字符串数组。但在运行时它是不确定的,因为你还没有初始化它。

+1

感谢帮助它的作品 –

+0

没问题,乐意帮助 –

+0

@ Matiusz.V7也许你知道如何[0]我有一个控制台,我有未定义 –