回答編集履歴

5

誤りを修正

2019/02/08 01:55

投稿

7Kreuz
7Kreuz

スコア112

test CHANGED
@@ -28,8 +28,6 @@
28
28
 
29
29
  reInit() {
30
30
 
31
- let currIndex = this.$refs.slick.currentSlide()
32
-
33
31
  this.$refs.slick.destroy()
34
32
 
35
33
  this.$nextTick(() => {

4

誤りを修正

2019/02/08 01:55

投稿

7Kreuz
7Kreuz

スコア112

test CHANGED
@@ -36,8 +36,6 @@
36
36
 
37
37
  this.$refs.slick.create()
38
38
 
39
- this.$refs.slick.goTo(currIndex, true)
40
-
41
39
  })
42
40
 
43
41
  }

3

調べたことを追記

2019/02/08 01:54

投稿

7Kreuz
7Kreuz

スコア112

test CHANGED
@@ -7,3 +7,39 @@
7
7
 
8
8
 
9
9
  とりあえずそれで動くなら、もっとスッキリ書く方法もありそうですので、もうちょい考えてみます。
10
+
11
+
12
+
13
+ (追記)
14
+
15
+ 調べてみると、
16
+
17
+ https://github.com/staskjs/vue-slick/issues/52
18
+
19
+ https://github.com/staskjs/vue-slick/issues/45
20
+
21
+ このへんに上がっていますね。
22
+
23
+ reInitを次のように書き換えるとどうでしょう?
24
+
25
+
26
+
27
+ ```
28
+
29
+ reInit() {
30
+
31
+ let currIndex = this.$refs.slick.currentSlide()
32
+
33
+ this.$refs.slick.destroy()
34
+
35
+ this.$nextTick(() => {
36
+
37
+ this.$refs.slick.create()
38
+
39
+ this.$refs.slick.goTo(currIndex, true)
40
+
41
+ })
42
+
43
+ }
44
+
45
+ ```

2

asyncは必要というわけでもないので修正

2019/02/08 01:46

投稿

7Kreuz
7Kreuz

スコア112

test CHANGED
@@ -6,4 +6,4 @@
6
6
 
7
7
 
8
8
 
9
- とりあえずそれで動くなら、async、awaitを使えばもっとスッキリそうですので、もうちょい考えてみます。
9
+ とりあえずそれで動くなら、もっとスッキリ書く方法もありそうですので、もうちょい考えてみます。

1

大きく変更

2019/02/07 10:41

投稿

7Kreuz
7Kreuz

スコア112

test CHANGED
@@ -1 +1,9 @@
1
- `mounted`の中に`this.reInit()`を追加するだけで良さそうですが、どうでしょう。
1
+ ~~`mounted`の中に`this.reInit()`を追加するだけで良さそうですが、どうでしょう。~~
2
+
3
+
4
+
5
+ あ、すみませんわかりました。原因は`getList`で非同期処理を行っていることですね。最も手っ取り早い解決は、getList内の各分岐の`this.items = myJson.events;`(4箇所)の直後に`this.reInit();`を付け足すことだと思われます。
6
+
7
+
8
+
9
+ とりあえずそれで動くなら、async、awaitを使えばもっとスッキリしそうですので、もうちょい考えてみます。