如何使用 Ant Design Vue 禁用 Select 中的特定元素?

Posted

技术标签:

【中文标题】如何使用 Ant Design Vue 禁用 Select 中的特定元素?【英文标题】:How can i disable a specific element in a Select with Ant Design Vue? 【发布时间】:2021-08-26 14:55:46 【问题描述】:

我正在尝试禁用 a-select 的特定元素。 为此,我有一个函数“check_function”,当我想禁用一个元素时,我会返回字符串“disabled”。 我有

      <a-select @change="onTestChanged" :value="currentTestId" >
        <a-select-option 
          v-for="test in tests" v-bind:key="test.id"
          :value="test.id" 
          :disabled="check_function(test.id) == 'disabled'"
        >
           test.testName 
        </a-select-option>
      </a-select>

当函数“check_function”返回“disabled”时,我想禁用我的 a-select 中的一个元素。

async check_function(id) 
  await this.$store.dispatch("fetch_test", id)
  var save = this.$store.getters.get_test()
  if (save.length == 0) 
    console.log("disabled")
    return "disabled"
  
,

基本上,当我检查 console.log 时,它的工作条件。当我想禁用一个元素时,它会打印“disabled”。

但我的残疾人无法正常工作。当我在前面检查我的 a-select 时,什么都没有发生

当我在做的时候

check_function(id) 
  return "disabled"
,

我选择的所有元素都被禁用。

那么,为什么它不适用于第一种方式?

【问题讨论】:

【参考方案1】:

不是答案,而是一些调试技巧

检查save是否为空。 这将有助于确保至少您不会因为“保存”变量未定义或为空而错过 if 检查。

async check_function(id) 
  await this.$store.dispatch("fetch_test", id)
  var save = this.$store.getters.get_test()
  if (!save || save.length == 0) 
    console.log("disabled")
    return "disabled"
  
,

在进行 if 检查之前检查它是否返回 null。 这应该正确禁用所有。如果没有,那就有问题了

async check_function(id) 
  await this.$store.dispatch("fetch_test", id)
  return "disabled"

【讨论】:

基本上,当我有我的异步功能时,它不起作用,但是当我删除异步和等待时(并且只将返回“禁用”,它正在工作)。所以我不知道为什么,但是异步不要让我做一个“禁用”

以上是关于如何使用 Ant Design Vue 禁用 Select 中的特定元素?的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

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

「开源」基于SpringBoot+Ant Design Vue开发的物流仓储系统

Vue+Ant design vue安装及配置使用