位置: IT常识 - 正文

watch监听不到 props变量的变化(watch监听不到props数据改变)

编辑:rootadmin
watch监听不到 props变量的变化

目录

一、问题

二、解决方法

三、总结


一、问题

推荐整理分享watch监听不到 props变量的变化(watch监听不到props数据改变),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:watch监听不到 store数据变化,watch监听不到对象变化,watch监听不到props数据改变,watch监听不到props传来数据的变化,watch监听不到对象数组的变化,watch监听不到对象变化,watch监听不到props传来数据的变化,watch监听不到props,内容如对您有帮助,希望把文章链接给更多的朋友!

1.父组件向子组件传参变量 detailData:{tableData:devicelist}。在父组件中detailData是响应式的。

在第一层子组件中接收detailData,并且通过:detailData="detailData.tableData"传递给第二层子组件,   在第二层子组件中使用如下代码监听deailData的变化,用watch就是监听不到detailData的变化。

watch( () => props.detailData, (newval,oldval) => { //监听到 detailData的变化,我需要执行一些函数 console.log("watch detailData") } );二、解决方法

1.检查了监听的代码,正确的呀,没有问题

2.使用devtools插件检查,看到子组件中的detailData确实是发生了变化的呀,怎么我就是监听不到呀。很是离谱。、

3.是不是 detailData不是响应式的呢?也不是呀,使用 isReactive(detailData),检查了是响应式的呀。

4.到底是为什么呀,我真的没有见过这么离谱的事情,在第一层子组件中都监听不到 detailData的变化。尝试在父组件中监听 detailData的变化,结果竟然除了第一次变化,之后的变化的监听不到——离奇呀,devtools告诉我子组件的值都变了,只是没有渲染上去;父组件的监听却告诉我detailData的值压根就没有变化。

watch监听不到 props变量的变化(watch监听不到props数据改变)

5.看到给detailData赋值的地方,于是打印了一下给detailData赋的值,但是也只能打印第一次赋值的情况,后续赋值也打印不出来呀。

console.log("item",isRef(item),item,isProxy(item)) Object.assign(detailData, { tableData: item });

6.最后的最后:我要求detailData变化,就是要求 上面代码中的 item(deviceList)一直变化。竟然发现有一处写了如下一段代码,直接给devicelist赋值,devicelist不就是会失去响应式吗?可是为啥 isProxy()判断竟然是 true?

没细想把这段直接给响应式数据 deviceList赋值的代码注释了,竟然好了。。。。。。。

deviceList = deviceList.map((element) => { if (!element.isWarning) { element.isWarning = 0; } if (!element.level) { element.level = 0; } if (!element.remainTime || element.remainTime === '- -') { element.tempRemainTime = Infinity; } else { element.tempRemainTime = element.remainTime; } return element; });三、总结

1.也是绝了,问题倒是解决了,是和响应式有关系,但是又不是完全是因为响应式。因为isProxy()---判断数据是否是 reactive或 ref 数据类型,判断确实是 true呀。真的是自相矛盾,所以我真的也是很迷惑。如有大佬知道原因,欢迎评论区指教!

2.上面的直接原因表明当你在setup中希望一个reactive数据是响应式的,绝对不可以用  =  直接给数据赋值。上面注释的代码,我也改成for循环了,就没有问题了。

3.watch监听不到,你可以看看你希望变化的数据  是否存在 被直接用 = 赋值的情况

4.解决之前,我也看了其他的博客,都没有解决我的问题,所以特此记录一下。

/*

希望对你有帮助!

如有错误,欢迎指正,非常感谢!

*/ 

本文链接地址:https://www.jiuchutong.com/zhishi/297714.html 转载请保留说明!

上一篇:医学图像处理的SCI期刊和顶会(医学图像处理的步骤一是设计)

下一篇:node npm 下载,安装,使用 全网最全教程(npm安装node指定版本)

  • 微信朋友圈怎么发图片(微信朋友圈怎么@一个人)

    微信朋友圈怎么发图片(微信朋友圈怎么@一个人)

  • 光猫无信号灯闪烁红灯是怎么回事(光猫无信号灯闪烁)

    光猫无信号灯闪烁红灯是怎么回事(光猫无信号灯闪烁)

  • 苹果12是什么屏幕材质(苹果12是什么屏1)

    苹果12是什么屏幕材质(苹果12是什么屏1)

  • 喜马拉雅网络请求失败(喜马拉雅 发生网络错误,您可尝试关闭)

    喜马拉雅网络请求失败(喜马拉雅 发生网络错误,您可尝试关闭)

  • 收不到appstore验证短信(apple store收不到验证码)

    收不到appstore验证短信(apple store收不到验证码)

  • 手机设置路由器后上不了网(手机设置路由器教程)

    手机设置路由器后上不了网(手机设置路由器教程)

  • 手机停机后一直扣费合理吗(手机停机后一直扣费应该怎么投诉)

    手机停机后一直扣费合理吗(手机停机后一直扣费应该怎么投诉)

  • OTG连接是什么

    OTG连接是什么

  • 苹果微信的暗黑模式在哪里(苹果微信暗黑模式怎么开启)

    苹果微信的暗黑模式在哪里(苹果微信暗黑模式怎么开启)

  • 抖音7天内怎么申请退出工会(抖音七天后还要怎么退货)

    抖音7天内怎么申请退出工会(抖音七天后还要怎么退货)

  • cad无法识别的版本 不能读取(cad无法识别的版本不能读取没有无的文件怎么办)

    cad无法识别的版本 不能读取(cad无法识别的版本不能读取没有无的文件怎么办)

  • 淘宝怎么改实名认证资料(淘宝怎么改实名认证 知乎)

    淘宝怎么改实名认证资料(淘宝怎么改实名认证 知乎)

  • 苹果x充电完成怎么提示(苹果x充电完成怎么关闭)

    苹果x充电完成怎么提示(苹果x充电完成怎么关闭)

  • 苹果蓝牙耳机左耳没声音了(苹果蓝牙耳机左边声音小,右边声音正常)

    苹果蓝牙耳机左耳没声音了(苹果蓝牙耳机左边声音小,右边声音正常)

  • ios9.0什么意思(ios9.0版本)

    ios9.0什么意思(ios9.0版本)

  • 3mbps等于多少kbps(3mbps等于多少kb/s)

    3mbps等于多少kbps(3mbps等于多少kb/s)

  • 手机怎么充10元话费(怎么在手机上充十块钱话费)

    手机怎么充10元话费(怎么在手机上充十块钱话费)

  • 抖音里自己的作品怎么删除(抖音里自己的作品怎么没有了)

    抖音里自己的作品怎么删除(抖音里自己的作品怎么没有了)

  • 小蜜单车怎么退押金(小蜜单车退出北京了吗)

    小蜜单车怎么退押金(小蜜单车退出北京了吗)

  • oppo开发者去除小黄条(oppo开发者模式如何取消)

    oppo开发者去除小黄条(oppo开发者模式如何取消)

  • 小米手机回收站恢复的照片在哪里(小米手机回收站删除的照片怎么恢复)

    小米手机回收站恢复的照片在哪里(小米手机回收站删除的照片怎么恢复)

  • 安卓q是什么系统(安卓q版本是什么意思)

    安卓q是什么系统(安卓q版本是什么意思)

  • ipada1432尺寸(ipada1474的尺寸)

    ipada1432尺寸(ipada1474的尺寸)

  • vivoy93返回键在哪里(vivoy93怎么设置返回键)

    vivoy93返回键在哪里(vivoy93怎么设置返回键)

  • 华为p20如何分屏(华为p20如何分屏一半一半)

    华为p20如何分屏(华为p20如何分屏一半一半)

  • Linux Mint系统背景图片怎么更换? Linux更换桌面背景的技巧(linux minor)

    Linux Mint系统背景图片怎么更换? Linux更换桌面背景的技巧(linux minor)

  • 怎么取消电脑开机密码(怎么取消电脑开机自动启动软件)

    怎么取消电脑开机密码(怎么取消电脑开机自动启动软件)

  • 给饿了么Radio 单选框添加点击事件(vue2)(饿了么指定单)

    给饿了么Radio 单选框添加点击事件(vue2)(饿了么指定单)

  • 消费税是指什么税
  • 长期股权投资为什么要冲减资本公积
  • 增值税何时需要交税
  • 普票冲红原票要退回吗
  • 营业执照三证合一是哪一年开始的
  • 机票电子行程单和发票的区别
  • 一般纳税人购进货物用于免征增值税项目
  • 企业税收扣除标准
  • 不符合规定(未带编码或编码选择错误)的发票,纳税人该怎么做?
  • 外购库存商品
  • 旅行社开具的发票能否作废
  • 一般企业车辆日期怎么算
  • 发票在验旧日期之后作废吗
  • 预付款能开发票吗?
  • 委托贷款合同效力
  • 房地产预收账款是什么
  • 收到汇算清缴后怎么处理
  • 厂区道路施工步骤
  • 误餐费怎么入账
  • qqbak文件怎么打开
  • 农村土地承包经营权证丢失怎么补办
  • idea添加web项目
  • 在大运河上举办什么活动
  • 没进项可以开专票吗
  • 花雕典故
  • ssl查询网站
  • python如何在一个文件中运行另一个文件
  • 劳务公司属于什么
  • 材料采购账务处理思维图怎么做
  • 2023小型微利企业税收优惠
  • sql server列属性
  • sqlserver控制台
  • 建筑工程人工费包括哪些内容
  • 资质办理属于什么开票大类
  • 预收账款可以长期挂账吗
  • 一年内到期的非流动负债计算公式
  • 保险公司 返点
  • 公司为小规模纳税人
  • 咨询服务费可以全额扣除吗
  • 营改增后租金收入交什么税
  • 应付账款的账务怎么处理
  • 预付账款没有发票吗
  • 设备折旧怎么记账
  • 研发成功后的产品出售如何处理
  • 一般纳税人10万元以下附加税
  • 销售返利的会计处理方法
  • 什么是四大行业
  • 收付实现制下主营业务成本怎么算
  • 哪些会计凭证可以抵扣进项税
  • sql优化的一般步骤
  • sql server中数据类型怎么用
  • quicklook预览word
  • centos 离线安装git
  • vs显示进程已退出
  • win8系统gho
  • 升级ubuntu
  • puppset
  • win8怎么打开word
  • win10红石版
  • win8.1操作界面
  • windows to go教程
  • Win10 Mobile RedStone预览版14267已知问题与修复内容汇总
  • cocos2dx 3.4 Label中文显示
  • unity3d怎么用
  • javascript中的eval函数
  • node.js gui
  • opengl深度值与z值
  • 红宝书csv
  • js中日期格式转换
  • jQuery on绑定的事件
  • nodejs操作mongodb
  • linux内核讲解
  • tiles框架
  • android应用市场有哪些
  • Python字符串数组
  • java教程 视
  • window10脚本错误
  • python3获取本机ip
  • 怎么看网页的编码格式
  • 苹果官网手机号码无效
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设