回答編集履歴

1

内容修正

2018/09/17 21:57

投稿

spookybird
spookybird

スコア1803

test CHANGED
@@ -20,11 +20,15 @@
20
20
 
21
21
 
22
22
 
23
- ページが表示された時点ですでにカウントダウンは動作してていいって前提で書きます。
23
+ ~~ページが表示された時点ですでにカウントダウンは動作してていいって前提で書きます。~~
24
24
 
25
25
 
26
26
 
27
- [mounted](https://jp.vuejs.org/v2/api/#mounted)フックを使うといいと思います。
27
+ ~~[mounted](https://jp.vuejs.org/v2/api/#mounted)フックを使うといいと思います。~~
28
+
29
+
30
+
31
+ このコンポーネントがマウントされた時点では、まだ`noweventlistchild`の中身が空っぽのようなので、`watch`を使ってプロパティを監視するように修正しました。
28
32
 
29
33
 
30
34
 
@@ -72,33 +76,33 @@
72
76
 
73
77
  },
74
78
 
75
- mounted() {
79
+ watch: {
76
80
 
77
- // プロパティの配列でループ
81
+ noweventlistchild(new, old) {
78
82
 
79
- // ただしmountedフックで一度動作するだけなので
83
+ // プロパティ配列ループ
80
84
 
81
- // 配列にあとから追加や削除があっても検知しない
85
+ new.forEach((item, index) => {
82
86
 
83
- this.noweventlistchild.forEach((item, index) => {
87
+ // dataに定義したcounts配列に初期値をぶっこむ
84
88
 
85
- // dataに定義したcounts配列に初期値をぶっこむ
86
-
87
- this.counts.push(this.formatRemain(this.getDuration(item.end_time)));
89
+ this.counts.push(this.formatRemain(this.getDuration(item.end_time)));
88
90
 
89
91
 
90
92
 
91
- // 個別にsetIntervalをセットする
93
+ // 個別にsetIntervalをセットする
92
94
 
93
- setInterval(() => {
95
+ setInterval(() => {
94
96
 
95
- // 自分のindexのカウンタを更新する
97
+ // 自分のindexのカウンタを更新する
96
98
 
97
- this.counts.splice(index, 1, this.formatRemain(this.getDuration(item.end_time)));
99
+ this.counts.splice(index, 1, this.formatRemain(this.getDuration(item.end_time)));
98
100
 
99
- }, 1000);
101
+ }, 1000);
100
102
 
101
- });
103
+ });
104
+
105
+ }
102
106
 
103
107
  }
104
108
 
@@ -114,4 +118,4 @@
114
118
 
115
119
 
116
120
 
117
- watch使えば、プロパティに渡ってきた配列の変更を検知してカウンタを追加したり削除したりすることもできると思います。
121
+ ~~watch使えば、プロパティに渡ってきた配列の変更を検知してカウンタを追加したり削除したりすることもできると思います。~~