Cascader---[Vue warn]: Invalid prop: custom validator check failed for prop “options“.Vue解绑

背景:VUE+antdesign(级联选择器);

  1. 控制台警告:[Vue warn]: Invalid prop: custom validator check failed for prop “options”
  2. Cascader-children孩子为空,显示有空白项

在这里插入图片描述
官方代码

<template>
  <a-cascader :options="options" placeholder="Please select" @change="onChange" />
</template>
<script>
export default {
  data() {
    return {
      options: [
        {
          value: 'zhejiang',
          label: 'Zhejiang',
          children: [
            {
              value: 'hangzhou',
              label: 'Hangzhou',
              children: [
                {
                  value: 'xihu',
                  label: 'West Lake',
                },
              ],
            },
          ],
        },
        {
          value: 'jiangsu',
          label: 'Jiangsu',
          children: [
            {
              value: 'nanjing',
              label: 'Nanjing',
              children: [
                {
                  value: 'zhonghuamen',
                  label: 'Zhong Hua Men',
                },
              ],
            },
          ],
        },
      ],
    };
  },
  methods: {
    onChange(value) {
      console.log(value);
    },
  },
};
</script>

后台接口返回的数据直接塞进来的,发现怎么有个空,后来用官方实例测试发现,children为[]的时候就会出现这样的情况,那么就递归解决下子
在这里插入图片描述

// 格式化数据,递归将空的children置为undefined
  formatData(data: any) {
    const that = this
    data.forEach((element: any) => {
      if (element.children && element.children.length > 0) {
        that.formatData(element.children)
      } else {
        element.children = undefined
      }
    })
    return data
  }

这时候页面页面已经显示出来了,但是为啥控制台有个警告???对于强迫症来说不能忍,一番操作以后发现因为
双向绑定导致数据类型不一致,所以要解绑:
把数据外面再套一层就行了
JSON.parse(JSON.stringify(this.formatData(转换的数据-数组))) || []
为什么不一致?自己百度下observe和object;写的急,有时间我再详述~

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OrangeChenZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值