Angular 未捕获类型错误:无法读取属性';id';制作将图像上载到firebase的程序时未定义的
我正在做一个简单的程序来上传图像和文件到firebase云。我还是一个网络应用的新手,所以我不明白错误是由什么引起的。保存时,代码中没有错误。但是,当我编译它时,页面不会加载,并且在控制台中给我一个错误: core.js:24134未捕获类型错误:无法读取未定义的属性“id” 在registerNgModuleType(core.js:24134)上 在core.js:24145 在Array.forEach()处 在registerNgModuleType(core.js:24145)上 在新的NgModuleFactory$1(core.js:24242) 在compileNgModuleFactory\uuuuuuuuuuuuuuuuuuuuuuuuuuuu3(core.js:27786) 在PlatformRef.bootstrapModule(core.js:28024) at模块../src/main.ts(main.ts:11) 在网页上需要(引导:84) 对象0处(main.ts:12) 我不擅长调试这些东西,所以非常感谢大家的帮助Angular 未捕获类型错误:无法读取属性';id';制作将图像上载到firebase的程序时未定义的,angular,typescript,firebase,ionic-framework,angularfire2,Angular,Typescript,Firebase,Ionic Framework,Angularfire2,我正在做一个简单的程序来上传图像和文件到firebase云。我还是一个网络应用的新手,所以我不明白错误是由什么引起的。保存时,代码中没有错误。但是,当我编译它时,页面不会加载,并且在控制台中给我一个错误: core.js:24134未捕获类型错误:无法读取未定义的属性“id” 在registerNgModuleType(core.js:24134)上 在core.js:24145 在Array.forEach()处 在registerNgModuleType(core.js:24145)上 在新
//HTML:
<div class="choose_file">
<span><ion-icon name="cloud-upload-outline"></ion-icon>Upload</span>
<input name="Select File" type="file" (change)='uploadFile($event)'/>
</div>
//Typescript:
import { Component } from '@angular/core';
import { AngularFireStorage } from '@angular/fire/storage';
@Component({
selector: 'app-tab1',
templateUrl: 'tab1.page.html',
styleUrls: ['tab1.page.scss']
})
export class Tab1Page {
constructor( private storage: AngularFireStorage) {}
uploadFile(event) {
const file = event.target.files[0];
var filePath = "test-image";
const fileRef = this.storage.ref(filePath);
var task = fileRef.put(file);
}
}
//App Routing Module TS:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { environment } from 'src/environments/environment';
import { RouteReuseStrategy } from '@angular/router';
import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { AngularFireModule } from '@angular/fire';
import { AngularFireAuthModule } from '@angular/fire/auth';
import { AngularFirestoreModule } from '@angular/fire/firestore';
import { AngularFireStorage } from '@angular/fire/storage';
import {HttpClientModule} from "@angular/common/http";
@NgModule({
declarations: [AppComponent],
entryComponents: [],
imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule, AngularFireModule.initializeApp(environment.firebaseConfig),
AngularFireAuthModule,
AngularFirestoreModule,
HttpClientModule,
AngularFireStorage
],
providers: [
StatusBar,
SplashScreen,
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy },],
bootstrap: [AppComponent]
})
export class AppModule {}
//HTML:
上传
//打字稿:
从'@angular/core'导入{Component};
从'@angular/fire/storage'导入{AngularFireStorage};
@组成部分({
选择器:“app-tab1”,
templateUrl:'tab1.page.html',
样式URL:['tab1.page.scss']
})
导出类选项卡1页{
构造函数(专用存储:AngularFireStorage){}
上载文件(事件){
const file=event.target.files[0];
var filePath=“测试图像”;
const fileRef=this.storage.ref(文件路径);
var task=fileRef.put(文件);
}
}
//应用程序路由模块TS:
从“@angular/core”导入{NgModule};
从“@angular/platform browser”导入{BrowserModule};
从'src/environments/environment'导入{environment};
从'@angular/router'导入{RouterUseStrategy};
从'@ionic/angular'导入{IonicModule,IonicRouteStrategy};
从'@ionic native/SplashScreen/ngx'导入{SplashScreen};
从'@ionic native/status bar/ngx'导入{StatusBar};
从“./app routing.module”导入{AppRoutingModule};
从“./app.component”导入{AppComponent};
从'@angular/fire'导入{AngularFireModule};
从'@angular/fire/auth'导入{angularfireauthmodel};
从'@angular/fire/firestore'导入{AngularFirestoreModule};
从'@angular/fire/storage'导入{AngularFireStorage};
从“@angular/common/http”导入{HttpClientModule};
@NGD模块({
声明:[AppComponent],
入口组件:[],
导入:[BrowserModule,IonicModule.forRoot(),AppRoutingModule,AngularFireModule.initializeApp(environment.firebaseConfig),
Angular模块,
AngularFirestoreModule,
HttpClientModule,
角形蓄水池
],
供应商:[
状态栏,
飞溅屏幕,
{提供:RouterUseStrategy,useClass:IonicRouteStrategy},],
引导:[AppComponent]
})
导出类AppModule{}
此代码中没有任何内容试图访问任何内容的“id”属性。你能给我们看更多的代码吗?此错误将与任何试图访问某物['id']或某物.id的对象相关,因此请在代码中查找发生此错误的位置。调试对编程至关重要!您需要查看在运行ionic-serve
之后,您的开发环境中是否会出现此错误,以便您的typescript源代码映射将您指向抛出错误的代码的正确行。您提供的代码没有向我们显示任何有用的内容。@Steve我使用的是firebase应用程序ID,可能与此有关吗?可能。我能给你的最好建议是,你需要寻找一个你正在循环的数组。在该数组中,您正在访问未定义的对象的id。没有相关的代码,我不能再做了。