ant-design Select组件,如何当value为空时显示placeholder?

 <Select
 labelInValue
 value={{key:this.state.boxTypeId,label:this.state.boxType}}
getPopupContainer={() => document.getElementById('boxType')}
placeholder="请选择类型" style={{width: '100%'}}
onChange={e=>this.handleSelectChange('boxType',e)}>
 {
   boxModelState.map((item, index) => <Option value={item.id} key={index}>{item.name}</Option>)
}
</Select>

有个重置按钮,点了后,设置了state中boxTypeId,boxType 都为空,怎么placeholder不显示了,要怎么处理?

阅读 13k
4 个回答

你的value为空的花,在antd中有些组件默认显示就是给你的空,空在组件里面代表有值,如果你想要显示placeholder的文件的花,把没有值做个判断显示成undefined 就可以正常显示了

新手上路,请多包涵

and-design-vue 搜到这里,如果是 andv 出现类似的问题,原因是当 valueundefined 时,placeholder 才生效。

如果你是 class + ts 写法,默认值又不能是 undefined,可以用以下的写法:
以 非 labelInValue 示例:

  1. value 绑定的 data (例如上面的 boxTypeId)初始值赋值为 ''
  2. :value="boxTypeId === '' ? undefined : boxTypeId"

obj={key:123,label:123}
value ={obj}
obj=null

<Select value={this.state.value || ''} />
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题