【问题标题】:V-checkbox input-value on change not working as expected更改时的 V-checkbox 输入值未按预期工作
【发布时间】:2021-07-16 20:46:55
【问题描述】:

模板:

<template #[`${instanceItemIdKey}`]="{ item }">
 <v-checkbox
    :input-value="item.value"
    @change="$emit('onPermissionChange', item)"
  ></v-checkbox>
</template>

给我item 的数据是通过道具传递的。该项目是动态的(所以我不能使用计算的设置器)。当更改被触发时,它会运行 vuex 操作并改变状态(我已经检查了 vuex-dev-tools 中的 item.value 并且值是正确的)。但是检查状态没有改变。如何在不使用 v-model 的情况下根据 item.value 更改选中状态?

【问题讨论】:

  • 你试过了吗:值
  • @GirlCodes,当然,但它根本不适用于 :value
  • 尝试@click.capture 并删除复选框上的所有其他事件

标签: javascript vue.js vuetify.js vuex


【解决方案1】:

我在 codepen 中尝试过,效果很好:

<v-checkbox
    :input-value="item.value"
            @click="changeValue"
  ></v-checkbox>

methods: {
   changeValue: function(e) {
      e.stopPropagation()
      this.callToServer().then(() =>{
          this.item.value = !this.item.value;
      })
      .catch((error) => {
            console.log(error)
        });
    },
}

【讨论】:

  • 你试过设置 this.item.value = this.item.value 吗?
  • 因为例如我正在发出请求,如果我发现错误,我不需要更改值
  • @Alopwer 我不明白你能解释更多你是什么意思保持不变?点击时你需要切换它而不是设置它
  • 我在点击时向服务器发出请求,如果我收到错误,我需要复选框保持不变 = 不被切换,这就是为什么我需要在这种情况下保持不变的值跨度>
  • 那么你什么都不做,而不是设置它什么都不做,在这种情况下添加 if 和 else
【解决方案2】:

我不明白为什么它不能与 v-checkbox 一起使用,但我已经将 v-simple-checkbox 与 :value 和 @input 一起使用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-28
    • 1970-01-01
    • 2021-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多