2017-09-23 49 views
0

我需要从目录中递归读取所有文件。类成员变量未定义

我使用的代码片段:

import { Component } from '@angular/core'; 
import { File } from '@ionic-native/file' 

@Component({ 
    selector: 'page-files', 
    templateUrl: 'files.html', 
}) 
export class FilesPage { 

    public filePaths: string[]; 

    constructor(private file: File) { 
    } 

    ionViewDidLoad() { 
    this.findFiles("WhatsApp/Media"); 
    } 

    findFiles(dir: string): void { 

    this.file.listDir(this.file.externalRootDirectory, dir).then(
     (files) => { 
     for (let file of files) { 
      if (file.isDirectory && file.name != '.' && file.name != '..') { 
      this.findFiles(dir + "/" + file.name) 
      } else { 
      this.filePaths.push(file.name) 
      } 
     } 
     } 
    ).catch(
     (err) => { 
     console.log(err.toString()) 
     } 
    ); 
    } 
} 

我收到运行时错误“this.filePaths是不确定的”在this.filePaths.push(file.name)

但是成员函数this.findFiles(dir: string): void是可用的,不要什么发生this.filePaths成员变量。

回答

0

filePaths未定义。尝试实例化构造函数中的变量,如

this.filePaths = [];