4

我正在尝试禁用 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>

当函数“ ”返回“ ”时,我想禁用我的 a-select元素。check_functiondisabled

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"
},

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

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

4

1 回答 1

1

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

检查保存是否为空。这将有助于确保至少您不会因为您的“保存”变量未定义或为空而错过 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"
}
于 2021-06-10T13:10:32.287 回答