需求:
A页面跳转至B页面,B页面需要展示赋值了的el-cascader组件。
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
</head>
<body>
<div id="app-2">
<el-cascader
v-model="value"
:options="options"
:props="props"
clearable></el-cascader>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<script>
var app2 = new Vue({
el: '#app-2',
data: {
props: { multiple: true },
value: [[17,18,19],[1,7,10],[1,2,3]],
options: [
{
value: 1,
label: '东南',
children: [{
value: 2,
label: '上海',
children: [
{ value: 3, label: '普陀' }
]
},
{
value: 7,
label: '江苏',
children: [
{ value: 10, label: '无锡' }
]
}]
},
{
value: 17,
label: '西北',
children: [{
value: 18,
label: '陕西',
children: [
{ value: 19, label: '西安' },
]
}, {
value: 21,
label: '新疆维吾尔族自治区',
children: [
{ value: 22, label: '乌鲁木齐' }
]
}]
}]
}
})
</script>
</body>
</html>
此时,你如果删除默认值的西北 / 陕西 / 西安,页面上删除的却是东南 / 上海 / 普陀。
图片如下:
最后发现,默认赋值的时候得按照这个组件的值的顺序来,即value按照options的顺序来,即下面代码,就可以正确删除啦。
value: [[1,2,3],[1,7,10],[17,18,19]]