1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Angular4 -> 6 にアップデートした時にハマったこと

Last updated at Posted at 2018-07-24

備忘録的に書いていきます。
もっと良いやりかたあるよ!などのご指摘大歓迎です!

まずは公式にならってアップデート
https://update.angular.io/

公式の一連の流れをやればだいたい出来てるはずなので、ng serveスタート!

バーン!

ERROR in src/app/_components/***/***.component.ts(45,28): error TS2339: Property 'json' does not exist on type 'ArrayBuffer'.

怒られた…

どうやらここで怒られている模様

let options = { headers: {'Content-Type': 'application/json'}};

this.http.post(url, body, options).subscribe(
  data => {
    this.data = data.json(); // <- エラー発生箇所
  },
  error => {
  },
);

dataの中身を見てみるとそもそもnull
スクリーンショット 2018-07-24 21.41.29.png

ググり倒して3時間。
どうやら単純にレスポンスのbodyがnullなだけみたいなんだけど、それ以前のステータスコードとかはどこいった!
てことでoptionsにobserveを追加すれば見れるようになるようだった。

let options = { headers: {'Content-Type': 'application/json'}, observe: "response" }; // <- observeを追加
this._http.post(url, body, options).subscribe(
  data => {
    this.data = data['body']; // <- bodyに変更
  },
  error => {
  },
);

でもdata['body']って物凄く気持ち悪い。。。どうにかならないものか。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?