码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • vue 使用this.$set设置对象属性值时,不更新试图


     vue 使用this.$set设置对象属性值时,不更新试图。

    后来发现是因为若对象中存在该属性时,只更新值,不添加响应监测。

    1. //vue/src/core/observer/index.js 源码片段
    2. /**
    3. * Set a property on an object. Adds the new property and
    4. * triggers change notification if the property doesn't
    5. * already exist.
    6. */
    7. export function set (target: Array<any> | Object, key: any, val: any): any {
    8. if (process.env.NODE_ENV !== 'production' &&
    9. (isUndef(target) || isPrimitive(target))
    10. ) {
    11. warn(`Cannot set reactive property on undefined, null, or primitive value: ${(target: any)}`)
    12. }
    13. if (Array.isArray(target) && isValidArrayIndex(key)) {
    14. target.length = Math.max(target.length, key)
    15. target.splice(key, 1, val)
    16. return val
    17. }
    18. if (key in target && !(key in Object.prototype)) {
    19. target[key] = val
    20. return val
    21. }
    22. const ob = (target: any).__ob__
    23. if (target._isVue || (ob && ob.vmCount)) {
    24. process.env.NODE_ENV !== 'production' && warn(
    25. 'Avoid adding reactive properties to a Vue instance or its root $data ' +
    26. 'at runtime - declare it upfront in the data option.'
    27. )
    28. return val
    29. }
    30. if (!ob) {
    31. target[key] = val
    32. return val
    33. }
    34. defineReactive(ob.value, key, val)
    35. ob.dep.notify()
    36. return val
    37. }

    解决办法:使用this.$delete先删除已经存在的属性值

    if(request_name in this.request_error)
       this.$delete(this.request_error,request_name)
  • 相关阅读:
    [Linux打怪升级之路]-秒懂进程地址空间
    Thrift 实践1:编译安装篇
    Kubernetes_17_新建用户账号UserAccount(实践类)
    win10桌面便签小工具,安全无广告下载哪一款
    大数据培训之Hadoop序列化
    【机器学习】树模型预剪枝和后剪枝
    Redis事务和锁机制
    svn提交规范
    企业服务器上云还是下云哪种比较好?-尚云Sunclouds
    「经验总结」高效开发,老代码可以这样动
  • 原文地址:https://blog.csdn.net/yuxuan89814/article/details/132986505
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号