質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ionic

Ionicは、クロスプラットフォームに対応したモバイルアプリ開発のためのオープンソースUIフレームワークです。iOSやAndroid、Webのアプリケーションを1つのコードベースで開発できます。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

解決済

1回答

381閲覧

TypeScriptの配列に関するエラー

firesign

総合スコア15

Ionic

Ionicは、クロスプラットフォームに対応したモバイルアプリ開発のためのオープンソースUIフレームワークです。iOSやAndroid、Webのアプリケーションを1つのコードベースで開発できます。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2020/10/23 02:02

ionic×firebaseを使ってチャットアプリを作成したいのですが、
下記の部分でエラーが発生します。

firebaseのDBからデータを取得できているところまでは確認できましたが
エラーが発生する原因がわからず困っています。

よろしくお願いいたします。

[エラーメッセージ]
ERROR TypeError: Cannot read property 'rooms' of undefined
at room.page.ts:33
at DataSnapshot.js:126
at LLRBNode.push../node_modules/@firebase/database/dist/cjs/src/core/util/SortedMap.js.LLRBNode.inorderTraversal (SortedMap.js:170)
at LLRBNode.push../node_modules/@firebase/database/dist/cjs/src/core/util/Sorte

TypeScript

1export class RoomPage implements OnInit { 2 3 rooms = new Array(); 4 5 constructor(public navCtrl: NavController) { } 6 7 async ngOnInit() { 8 firebase.auth().onAuthStateChanged((user) => { 9 if (user) { 10 firebase.database().ref('chatrooms/').on('value', function(resp) 11 { 12 if (resp) { 13 console.log("firebase.database().ref()"); 14 //this.rooms = new Array(); 15 16 resp.forEach(function(childsnapshot) 17 { 18 const room = childsnapshot.val(); 19 room.key = childsnapshot.key; 20 this.rooms.push(room);//※エラー発生個所 21 22 return false; 23 }); 24 } 25 }); 26 }else{ 27 this.navCtrl.navigateRoot('signin'); 28 } 29 }); 30 }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

forEachの中でfunctionを使っていますが、この場合コールバック関数内のthisundefinedとなります。

アロー関数で書きましょう。

投稿2020/10/23 02:09

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

firesign

2020/10/23 02:12

エラーが出なくなりました。ありがとうございます! まだまだ基本的なところが理解できていないので、勉強したいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問