コメントアウトされたdataArrayを使用すると、必要なデータが正常に取得されました。
ただし、
this.http.get()
から返されたdataArrayを使用するとエラーが表示されます
。
データ配列に適切にアクセスするにはどうすればよいですか?
// var dataArray = [{ id: 15, name: "111" }, { id: 13, name: "abc" }];
var dataArray = this.http.get(apiURL).subscribe(response => response.text());
const userID = this.route.snapshot.paramMap('id');
var user = dataArray.find(x => x.id === userID);
this.userForm.patchValue(user);
回答 1 件
関連記事
- Angular、HttpClient;プロパティ「shareReplay」はタイプ「Observable」に存在しません
- Reactプロジェクトで「TypeError:undefinedのプロパティ 'map'を読み取れません」というエラーが発生します
- [Vue警告]:レンダリングのエラー:「TypeError:未定義のプロパティ 'correct_answer'を読み取れません」
- @ rollup/plugin-node-resolveがエラーをスローします:未定義のプロパティ「長さ」を読み取れません
- nullのプロパティ 'title'を読み取れません:nuxtjsのエラーメッセージ
- nullのプロパティ 'value'を読み取れません最初のレンダリングでエラーが発生しました
- Angularクラスのプロパティが更新されない
- git LFSファイルの取得中にエラーが発生しました:オブジェクトがサーバーに存在しません:[404]オブジェクトがサーバーに存在しません
- プロパティ 'substr'はタイプ 'string |に存在しませんストリング[]'
- 未定義のプロパティ「長さ」を読み取れません:JavaScriptのエラー
.subscribe
を返します定期購読 使用する実際のデータではありません。返されるデータを使用するには、コールバック内で.subscribe
を操作する必要があります 。非同期呼び出しから応答を返す方法を参照してください。 JavaScriptでのコード同期のより詳細な説明については。通常、TypeScriptエラーが役立ちます。この場合、それはタイプ
Subscription
を告げています メソッド.find
がありません 。これは本当です...そしてその理由はdataArray
ということです はSubscription
です (.subscribe
の呼び出しから返された )と期待どおりの配列ではありません。応答から返された配列を使用する場合は、
.subscribe
内でアクセスする必要があります :また、すべてのユーザーを
patchValue
に取得する必要があるとは思わない 。理想的には、this.http.get(`/users/${userId}`)
のようなことができます.find
をスキップします 。