teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2018/11/27 15:46

投稿

NozomuIkuta
NozomuIkuta

スコア1260

answer CHANGED
@@ -18,8 +18,8 @@
18
18
  // watchで監視したいプロパティ名は、
19
19
  // dataのプロパティ名と一致させてください
20
20
  price(oldVal, newVal) {
21
- // oldVal: 変更前の値
21
+ // oldVal: 変更前の値 -> 間違い。こっちがnewVal(追記参照)
22
- // newVal: 変更後の値
22
+ // newVal: 変更後の値 -> 間違い。こっちがoldVal(追記参照)
23
23
  // returnしたものが最終的にpriceとして設定・利用される -> 間違い(追記参照)
24
24
  }
25
25
  }
@@ -35,4 +35,7 @@
35
35
 
36
36
  [サンプル](https://jsfiddle.net/NozomuIkuta/kdzxny8j/2/)
37
37
 
38
- 間違った情報を回答してしまい、すみません。
38
+ 間違った情報を回答してしまい、すみません。
39
+
40
+ ## 追記(2018/11/28)
41
+ たびたびすみません。`watch`の`price`関数の引数が、新旧逆でした。

1

内容修正

2018/11/27 15:46

投稿

NozomuIkuta
NozomuIkuta

スコア1260

answer CHANGED
@@ -20,8 +20,19 @@
20
20
  price(oldVal, newVal) {
21
21
  // oldVal: 変更前の値
22
22
  // newVal: 変更後の値
23
- // returnしたものが最終的にpriceとして設定・利用される
23
+ // returnしたものが最終的にpriceとして設定・利用される -> 間違い(追記参照)
24
24
  }
25
25
  }
26
26
  });
27
- ```
27
+ ```
28
+
29
+ ## 追記(2018/11/28)
30
+ 時間がたってしまっているのですが、間違ったことを書いていたので訂正します。
31
+ 上記ソースコードの「returnしたものが最終的にpriceとして設定・利用される」は間違いです。
32
+ `watch`関数の返り値は何にも利用されません。
33
+
34
+ ただ、コールバックの中で`this.price = xxx`のようにデータを変更すれば、同じイベントループ内で起こった変更として利用されます。
35
+
36
+ [サンプル](https://jsfiddle.net/NozomuIkuta/kdzxny8j/2/)
37
+
38
+ 間違った情報を回答してしまい、すみません。