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