Element Plus级联选择器怎么动态设置默认值?
我用Element Plus的Cascader做地区选择,数据是异步从接口拿的。但我想在编辑页面时回显已保存的路径(比如[‘110000’, ‘110100’, ‘110101’]),试了直接给modelValue赋值没反应,控制台也没报错。
是不是因为数据还没加载完就赋值导致的?我该在哪个生命周期或者用什么方法才能正确设置默认选中项?
<el-cascader
v-model="selectedArea"
:options="areaOptions"
:props="{ checkStrictly: true }"
/>
代码示例如下:
pre class="pure-highlightjs line-numbers">
watch(
() => areaOptions,
(newVal) => {
if (newVal && newVal.length) {
selectedArea.value = ['110000', '110100', '110101'];
}
},
{ immediate: true, deep: true }
);
这里用了watch来监听areaOptions的变化,一旦发现options有数据了,就直接赋值给selectedArea。immediate设为true是为了在watch创建时立即执行一次回调,确保如果数据已经加载完成,也能正确设置默认值。deep设为true则是为了深度监听对象内部的变化。