关于Vant3.0.16的Cascader选择器的使用问题

使用组件

cascader级联组件搭配Field和Popup组件,希望完成二级选择,选择公司后弹出对应部门,首先加载全部公司列表,然后根据选择的公司异步请求对应的部门
image.png
文档中第一级是一个对象,然后二级放在一级对象的children中

代码

const state = reactive({
        show: false,
        fieldValue: '',
        cascaderValue: '',
        options: [],
      })
      // 获取公司列表
      const getCompantList = () => {
        const data = []
        fetchCompany().then(({items}) => {
          items.forEach(item => {
            data.push({text: item.name, value: item.id, children: []})
          })
        })
        return data
      }
      state.options = getCompantList()
      const onChange = ({ value, selectedOptions }) => {
          console.log('selectedOptions',selectedOptions)
          if (selectedOptions.length === 1) {
            listQuery.comId = value
            fetchDept({ com_id: listQuery.comId }).then(({ items }) => {
            const deptList = []
            items.forEach(item => {
              deptList.push({text: item.name, value: item.id})
            })
            // 给options对应公司添加部门
            state.options.forEach(item => {
              if (item.value === listQuery.comId && item.children.length == 0) {
                item.children = deptList
                console.log('item', item)
              }
            })
            console.log(state.options)
          })
          }

问题

第一次选择可以正确获取部门,对应公司的children里放入对应的部门,第二次再选择时,数据也放到对应公司的children中了,但是视图中展示的是上一个部门
image.png
如图所示,机械公司中放的是测试部门,我点击还是image.png
我点击第三项,它还是会跳到第二项

阅读 4.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题