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

Posted ㄏ、Forgetˊ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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还有一个undefined,故也做了尝试,没想到成功了~~

总结

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

以上是关于ant-design-vue中select跟tree-select设置placeholder无效的主要内容,如果未能解决你的问题,请参考以下文章

ant-design-vue中a-input使用keyup删除不如keydown

ant-design-vue的upload上传后a标签下载没有token

Ant-design-vue中如何实现图片上传?

Ant-design-vue中如何实现图片上传?

Ant-design-vue中如何实现图片上传?

如何修改ant-design-vue中的样式问题