ant-design treeSelect组件replaceFields属性报错

使用ant-desgin的 treeSelect组件时,由于接口返回的数据键值并不是组件想要的value、title、key、children四个参数,所以考虑替换

查看api,有一个replaceFields属性可以替换接口的参数,所以立刻使用起来

 <a-tree-select
                class="w240"
                v-model="queryParam.deptId"
                tree-data-simple-mode
                :tree-data="deptIdList"
                :replaceFields="replaceFields"
                placeholder="请选择组织架构"
                treeDefaultExpandAll
              />

 其中,replaceFields我们这样声明:

data () {
    return {
      replaceFields: {
        children: 'children',
        title: 'name',
        key: 'code',
        value: 'id'
      },
      ......
     }
}

这样我们用接口中的id作为value,name作为title

注意,想要替换键值,必须把四个字段全部替换:

TreeSelect组件和Tree组件API中的replaceFields属性不同:

  1. TreeSelect组件中,data中设置的replaceFields必须children, key, value, title四个字段全部设置, 否则报错。

  2. Tree组件中,data中设置的replaceFields只有children, key, title三个字段,比TreeSelect组件中少一个value,这个value不设置会导致图片中的报错。

这样替换好了之后,查询结果还是报错了:

warning.js?d96e:34 Warning: Conflict! value of node '0-0-0-0' (undefined) has already used by node '0-0-0'. 

报错是在提示有节点的value冲突了,但是实际上接口里的数据没有任何冲突,再查看文档,发现想使用这个属性, ant-design-vue 版本必须在1.61以上才可以实现效果。

然而项目中版本是v1.5.x

所以考虑升级ant-design-vue的版本。

升级之后,报错消失,展示正常。

猜你喜欢

转载自blog.csdn.net/qq_36451496/article/details/119886484
今日推荐