Naive UI Cascader 如何动态加载子级数据?
我用 Naive UI 的 Cascader 做省市区选择,但不想一次性加载全部数据。试了 on-update:value 和 onLoad,但文档里没找到类似 Ant Design 的 loadData 方法。现在点开省级选项时,市级选项是空的,不知道该怎么触发异步加载下一级。
我目前的代码大概是这样:
<template>
<n-cascader
v-model:value="selectedValue"
:options="options"
:load-data="loadData"
/>
</template>
<script setup>
const options = ref([{ label: '北京市', value: '110000' }]);
const loadData = async (option) => {
// 这里想根据 option.value 请求市级数据,但没生效
};
</script>
loadData方法的实现上。Naive UI 的 Cascader 组件确实提供了loadData属性来处理异步加载,但是需要确保这个方法能够正确地返回一个 Promise,并且更新选项的数据结构。你在
loadData方法里面请求了市级数据,但没有将新获取的数据添加到当前选项的children中。你需要手动将新获取的数据挂载到当前选项上,这样 Cascader 才知道去渲染新的子节点。可以尝试这样改一下你的
loadData方法:这样,当你展开省级选项时,
loadData会被调用,然后模拟请求市级数据并将其赋值给省级选项的children属性,从而实现动态加载的效果。