解决ant-design select组件远程搜索选项不更新的问题

  代码如下,在搜索时调用handleSearch方法,去实时更新下拉选择的选项数据。但是下拉选项没有因为搜索更新,打印搜索后的list结果,发现list确实更新了有数据,但是视图没有更新,显示为空。

<a-select
  v-model="xxx"
  show-search
  placeholder="Please enter"
  :show-arrow="false"
  :not-found-content="null"
  @search="handleSearch"
>
  <a-select-option v-for="item in list" :key="item.value" :value="item.value">
    {{ item.label }}
  </a-select-option>
</a-select>

data() {
  return {
	xxx: '',
    list: []
  }
},
methods: {
	handleSearch(val){
		this.$http(url, { keyword: val }).then(res => {
			this.list = res.list
		})
	}
}
  刚开始还以为是diff的问题,视图没有更新更改后的数据。调试了半天之后才发现ant-design的select组件筛选下拉选项filterOption是默认打开的,也就是说你自己在搜索的时候传到select组件,组件内部又根据你搜索的关键字又筛选了一遍,将筛选后的结果显示到页面上。导致了数据更新了,视图却没有显示正确的远程搜索的结果

  解决办法就是手动设置filterOption为false在select组件上

在这里插入图片描述

你可能感兴趣的:(select,搜索,ant-design)