ant-design-vue中select跟tree-select设置placeholder无效

博主在使用ant-design-vue过程中,踩了非常多的坑,今天就部分组件的placeholder设置无效做记录。

失效示例代码及界面

<a-checkbox-group :options="descCheckOptions" @change="handleChangeDescCheckGroup">
  <div class="desc-checkitem" slot="label" slot-scope="{ index, value, list }">
    <span class="label">{{ value }}</span>
    <a-select
      @change="generateDescTable()"
      v-if="index != 5"
      v-model="descCheckOptions[index].checkedValue"
      :placeholder="
        index === 0
          ? '材料'
          : index === 1
          ? '袖型'
          : index === 2
          ? '腰型'
          : index === 3
          ? '图案类型'
          : '衣服长度'
      "
    >
      <a-select-option :value="item" v-for="(item, index) of list" :key="index">
        {{ item }}
      </a-select-option>
    </a-select>
    <a-tree-select
      v-else
      :treeData="list"
      v-model="descCheckOptions[index].checkedValue"
      treeCheckable
      @change="generateDescTable()"
      placeholder="适合场合"
    />
  </div>
</a-checkbox-group>

其中select组件,tree-select组件的v-model绑定值为''空值,页面渲染结果如下图:
渲染结果
最后一个select框为tree-select,可以看到所有select框都没有渲染placeholder,且tree-select还有一个默认的空选择。

解决方案

博主在经过测试后,发现其placeholder的渲染与v-model的绑定值有关,在将所有绑定值由''改为null之后,tree-select能够正常显示placeholder,但是select组件仍然不行。
由''修改为null后的效果
博主想到除了null还有一个undefined,故也做了尝试,没想到成功了~~
成功回显placeholder

总结

select与tree-select组件设置placeholder的时候,如果绑定的是v-model,select需设置其绑定值为undefined,tree-select需设置其绑定值为undefined或者null
假如说你使用的是a-from组件来包裹这两个组件,不用v-model而使用v-decorator进行绑定值,可以直接设置placeholder,但是博主案例中是使用循环来渲染的,所以只能采用v-model

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值