2017-12-27 6 views
1

私はリストを持っており、フィルタリングしたいだけです。 Array.findとfilterはすべてエラーを生成しています。Array.Filterとエラーが発生していないとわかる角度4

機能:

setSupplierDetails(supplierId) { 
const supplier = this.suppliers.filter(tempSupplier => tempSupplier.id === supplierId)[0]; 
this.supplierName = supplier.supplierName; 

} エラー:あなたの配列が初期化されていない場合

ERROR TypeError: Cannot read property 'filter' of undefined 
    at AddEditRestockComponent.webpackJsonp.../../../../../src/app/restock/add-edit-restock/add-edit-restock.component.ts.AddEditRestockComponent.setProductRelatedInfo 
+4

「this.suppliers」は定義されていません。それが宣言されているだけでなく、初期化されていることを確認してください(例えば、 'Supplier:SomeClass [] = [];')。 – ConnorsFan

+0

投稿 'this.suppliers' –

+0

私は答えを見つけました。私はsetSupplierDetails(supplierId)を通って来たsupplierIdを、問題の原因となった数字として数えました。 setSupplierDetails(supplierId){ constサプライヤ= this.suppliers.filter(tempSupplier => tempSupplier.id === + supplierId)[0]; this.supplierName = supplier.supplierName; – user3701188

答えて

0

これはあなたの配列initalize

suppliers: SomeClass[] = []; 

と内部を処理するために、起こるべきです方法

setSupplierDetails(supplierId) { 
if(this.suppliers && this.suppliers.length > 0){ 
const supplier = this.suppliers.filter(tempSupplier => tempSupplier.id === supplierId)[0]; 
} 
関連する問題