当前位置: 首页 > news >正文

Vue ‘v-model‘ directives require the attribute value which is valid as LHS.

1、问题描述

在项目开发中,如果将el-checkbox组件的v-model指令改为使用三元表达式时,会报出【vue/valid-v-model】的错误,如下图所示:

2、分析原因

根据错误提示,是因为v-model指令始终把Vue实例的data视为数据真实的来源,要求其绑定的值必须是一个合法的值(LHS),而三元表达式则不能保证其返回值一定是一个HLS值,不能要求v-model一次性观察多个变量。

3、问题解决

知道具体原因了,那么解决这个问题的方法,是将v-model指令改为使用  :value  和  @change  两个属性来分别绑定状态值和状态变更事件。
具体来说,你可以在el-checkbox组件上使用:value属性来绑定当前行数据中的状态值,使用@change属性来指定状态变更事件的处理方法。示例代码如下:

上述代码中,我们首先使用了一个名为  checkboxValue  的计算属性,来对  item.checked  进行转换,
在el-checkbox组件中,我们将 :value 属性绑定到  checkboxValue(item.checked)  方法,动态改变选中状态。
最后,我们在 @change 事件中调用  checkboxChange() 方法,来处理状态变更事件。


<template>
   <li v-for="(item,index) in tableData" :key="index">
       <div class="content-item">
           <el-checkbox :value="checkboxValue(item.checked)" @change="checkboxChange(item,index,$event)">选择城市</el-checkbox>
       </div>
   </li>
</template>
export default {
  data() {
    return {
      tableData: [],
    };
  },

  computed: {
    checkboxValue() {
      return function(val) {
        return val === ''
      };
    },
  },

  methods: {
    checkboxChange(item,index,e) {
      console.log("checkboxchange:", item,index,e);
      // 这里可以发送 API 请求,更新数据库中对应行的状态值
      item.checked= e ? '' : '上海'
      this.$set(this.tableData,index,item); // 手动修改数据
    },
  },
};
</script>

 4、总结

在上述代码中,我们将计算属性改为普通函数,并且在调用时传入了 item 数据。这样就能够正常获取到 item 数据,并根据 item.checked 的值来返回选中状态了。
需要注意的是,在 checkboxChange() 方法中仍然需要手动修改 item.checked 的值,并且如果该组件的 item.checked 值从后端接口中获取,则需要在接口响应后先将tableData中的数据更新,然后调用 this.$forceUpdate() 重新强制渲染页面,否则多选框组件显示的状态不会随着 item.checked 的变化而变化。

http://www.dtcms.com/a/132146.html

相关文章:

  • 八、自动化函数
  • 单基因高低分组和相关基因的GSEA等富集分析教程,代做分析
  • dev中使用auto的方法
  • AETTA: Label-Free Accuracy Estimation for Test-Time Adaptation
  • python编程-实现非确定性有限自动机
  • 正弦波有效值和平均值(学习笔记)
  • 探秘Transformer系列之(27)--- MQA GQA
  • 【一篇关于自我刷题的思考】
  • 使用Python进行AI图像生成:从GAN到风格迁移的完整指南
  • 如何安装git?
  • 智能Todo协作系统开发日志(二):架构优化与安全增强
  • 算法题(125):子集
  • AJAX与Axios基础
  • 网页爬虫--赶集网租房信息爬取(Python)
  • 开源模型应用落地-模型上下文协议(MCP)-第三方MCP Server实战指南(五)
  • 机器学习 从入门到精通 day_05
  • 生成式引擎优化(GEO)发展史与行业标准演变
  • (三) 傅里叶变换:把信号拆成音符的秘密
  • 【LLM】解锁Agent协作:深入了解谷歌 A2A 协议与 Python 实现
  • 邮件发送频率如何根据用户行为动态调整?
  • # 更换手机热点后secureCRT无法连接centOS7系统
  • 入门-C编程基础部分:2、第一个程序
  • 从零开始学习SLAM | 用四元数插值来对齐IMU和图像帧
  • 基于ESP32-S3 蓝牙SDK封装设计
  • 阿里计算机专业面试宝典1
  • javaweb的基础2
  • 【计算机网络】什么是路由?核心概念与实战详解
  • 群晖如何通过外网访问
  • KingbaseES之KDts迁移SQLServer
  • 安徽京准:GPS北斗卫星时空信号安全防护装置(授时)介绍