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

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

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

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

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

TypeScript

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

Q&A

解決済

1回答

1188閲覧

formBuilderに初期値が設定されない

KSS

総合スコア17

Ionic

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

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

TypeScript

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

0グッド

0クリップ

投稿2019/08/12 08:26

下記のように、指定したuid(userkey)のユーザーの編集をしたいのですが
formBuilderをinitで設定できず、html側のエラーが出てしまっています。

TypeScript

1 ngOnInit() { 2 this.usersService.readUser(this.userkey) 3 .subscribe((user)=>{ 4 this.data = user; 5 this.validations_form = this.formBuilder.group({ 6 email: new FormControl(this.data.email, Validators.required), 7 message: new FormControl(this.data.message), 8 name: new FormControl(this.data.name, Validators.required), 9 ); 10 }); 11 };

TypeScript

1 readUser(uid:string) { 2 return this.afs.collection('users').doc(uid).valueChanges(); 3 }

ERROR TypeError: Cannot read property 'get' of undefined

デバッグで追ったところ、ngOnInit()formBuilderが適切に設定されないままhtmlに移動しているように見えます。

何が原因なのでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

この情報だけだと確かなことはわかりませんが、以下2つを確認してみて下さい。

1、usersServiceから帰ってくるuserは常に存在するか(空の配列が帰ってきたりしないか)

2、componentのdataが空のときに問題ないようになってるか(サービスは非同期でデータを取ってきてるのでngOnInitのタイミングでは空もしくは未定義のはずです)

投稿2019/08/19 08:28

keisukeh

総合スコア657

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

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

KSS

2019/08/19 16:04

回答ありがとうございます、ご指摘の通り >2、componentのdataが空のときに問題ないようになってるか(サービスは非同期でデータを取ってきてるのでngOnInitのタイミングでは空もしくは未定義のはずです) でした!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問