vue.js - 更改值后无法向左移动
问题描述
我刚开始学习Vue。
在我使用 swiper 之后
当 vm.list = [1, 2, 3]
预期不错,可以正常执行
但是当 vm.list = [1, 2, 3, 4]
Swiper 不能向左移动,但可以向右移动。
然后我设置 vm.list = [1, 2, 3]
Swiper 可以正常左右移动,但是分页不会正常执行。
我究竟做错了什么?
<head>
<script src="../vue.js"></script>
<link rel="stylesheet" href="../static/css/swiper.css">
<script src="../static/js/swiper.js"></script>
</head>
<body>
<div id="box">
<div class="swiper-container a">
<div class="swiper-wrapper" :key="list.length">
<div class="swiper-slide" v-for="(data, index) in list" v-swipe="{
'index': index,
'length': list.length
}">
{{ data }}
</div>
</div>
<div class="swiper-pagination"></div>
</div>
</div>
<script type="text/javascript">
Vue.directive('swipe', {
inserted(el, bind) {
if (bind.value['index'] === bind.value['length'] - 1) {
new Swiper('.a', {
loop: true,
pagination: {
el: '.swiper-pagination',
}
})
}
}
})
const vm = new Vue({
el: '#box',
data: {
'list': []
},
mounted() {
setTimeout(() => {
this.list = ['111', '222', '333']
}, 2000)
}
})
</script>
</body>
解决方案
我发现 :key 放错了位置。
<div id="box">
<div class="swiper-container a">
<div class="swiper-wrapper" :key="list.length">
<div class="swiper-slide" v-for="(data, index) in list" v-swipe="{
'index': index,
'length': list.length
}">
{{ data }}
</div>
</div>
<div class="swiper-pagination"></div>
</div>
</div>
变成
<div id="box">
<div class="swiper-container a" :key="list.length">
<div class="swiper-wrapper">
<div class="swiper-slide" v-for="(data, index) in list" v-swipe="{
'index': index,
'length': list.length
}">
{{ data }}
</div>
</div>
<div class="swiper-pagination"></div>
</div>
</div>
推荐阅读
- android - Filter a contact List through TextWatcher in Android
- android - Facebook login crashing while Facebook app is installed
- c++ - OpenGL缓冲区问题
- go - How to get Prometheus Node Exporter metrics with JSON format
- javascript - Remove button is not working when dynamic add fields
- swift - 迅速。通过按下按钮获得通知访问权限
- angular - Primeng table p-table,set conditional column editable
- sql - 复杂查询“无法绑定多部分标识符”的问题
- django - form 的 save() 方法实际上是做什么的?
- angular - Karma 测试运行两次