位置: IT常识 - 正文

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

发布时间:2024-01-16
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指定版本)

  • 佳能750d怎么样(佳能750)(佳能eos750d怎么样)

    佳能750d怎么样(佳能750)(佳能eos750d怎么样)

  • 小米手表color2微信怎么显示(小米手表color2微信不提示)

    小米手表color2微信怎么显示(小米手表color2微信不提示)

  • 钉钉怎么打开摄像头和麦克风(钉钉怎么打开摄像头镜像)

    钉钉怎么打开摄像头和麦克风(钉钉怎么打开摄像头镜像)

  • 微信视频怎么关闭自己这边的摄像头(微信视频怎么关闭镜像功能)

    微信视频怎么关闭自己这边的摄像头(微信视频怎么关闭镜像功能)

  • 百度网盘联运版是什么意思(百度网盘联运版下载)

    百度网盘联运版是什么意思(百度网盘联运版下载)

  • 怎么突然变2G信号了(为什么突然变成2g信号)

    怎么突然变2G信号了(为什么突然变成2g信号)

  • 卖天猫积分对淘宝号有没有影响(使用天猫积分卖家可以收到钱吗)

    卖天猫积分对淘宝号有没有影响(使用天猫积分卖家可以收到钱吗)

  • 苹果屏幕左边一条竖线(苹果屏幕左边一条线)

    苹果屏幕左边一条竖线(苹果屏幕左边一条线)

  • 声卡为什么要安装机架(声卡为什么安装不了)

    声卡为什么要安装机架(声卡为什么安装不了)

  • 插上耳机音量乱跳原因(插上耳机音量乱跳是手机问题还是耳机问题)

    插上耳机音量乱跳原因(插上耳机音量乱跳是手机问题还是耳机问题)

  • 手机全屏字幕显示一半(手机整屏字幕)

    手机全屏字幕显示一半(手机整屏字幕)

  • c语言中while和do while循环的主要区别是(c语言中while和do-while的区别)

    c语言中while和do while循环的主要区别是(c语言中while和do-while的区别)

  • 红米8卡槽怎么装卡(红米卡槽怎么取)

    红米8卡槽怎么装卡(红米卡槽怎么取)

  • 全民k歌踢榜是什么意思(全民k歌踢榜是怎么回事)

    全民k歌踢榜是什么意思(全民k歌踢榜是怎么回事)

  • 苹果手机怎么设置指纹(苹果手机怎么设置陌生号码拦截)

    苹果手机怎么设置指纹(苹果手机怎么设置陌生号码拦截)

  • 卡贴机的lte能换成4g吗(卡贴lte转4g)

    卡贴机的lte能换成4g吗(卡贴lte转4g)

  • 为啥目录显示不完全(目录无法显示)

    为啥目录显示不完全(目录无法显示)

  • 淘宝影响二次销售规则(淘宝影响二次销售能退吗)

    淘宝影响二次销售规则(淘宝影响二次销售能退吗)

  • 小米k20普通版有dc调光吗(小米k20普通版有充电器吗)

    小米k20普通版有dc调光吗(小米k20普通版有充电器吗)

  • 短信怎么发送爱心效果(发送短信怎么发)

    短信怎么发送爱心效果(发送短信怎么发)

  • 电脑拍照在哪里(电脑拍照在哪里win11)

    电脑拍照在哪里(电脑拍照在哪里win11)

  • 一个人能开发app吗(一个人能开发手游吗)

    一个人能开发app吗(一个人能开发手游吗)

  • 苹果的耳机怎么带(苹果的耳机怎么充电)

    苹果的耳机怎么带(苹果的耳机怎么充电)

  • x27vivo有nfc功能吗(x27vivo有没有nfc功能)

    x27vivo有nfc功能吗(x27vivo有没有nfc功能)

  • 腾讯防沉迷解除

    腾讯防沉迷解除

  • 爱奇艺如何注销账号(爱奇艺如何注销手机号绑定)

    爱奇艺如何注销账号(爱奇艺如何注销手机号绑定)

  • 小规模纳税人收入超过500万怎么办
  • 证券交易计税依据
  • 所得税的会计分录有哪些
  • 小规模纳税人免税会计分录
  • 资产处置收益是什么意思
  • 账户认证操作
  • 服装纳税税率
  • 工会支出发票抬头是企业名称可以吗
  • 自产自用的资源税记入
  • 工会经费拨缴是什么意思
  • 商业承兑汇票托收凭证怎么做分录
  • 按计划成本发出原材料怎么算
  • 为什么利润表的财务费用与利息费用逻辑不对
  • 接受实物投资的增值税会计核算方法
  • 暂估销售收入怎么做分录
  • 房地产企业扣除项目
  • 扣收贷款本息
  • 固定资产报废账目
  • 汽车折旧计算方法按照公里
  • 专用发票验旧后还领不到发票
  • 原材料意外损失会计分录
  • 2019年以后转登记为小规模纳税人有无时间要求?
  • 有限合伙人的投资风险有哪些
  • 销售商品会计分录怎么写
  • 不开票收入申报是含税收入吗
  • 付款保险费
  • vue怎么使用本地存储比较好
  • 我整理的邪恶铭刻所有卡牌及自制卡
  • php system函数的用法
  • php确认弹窗
  • vue安装使用
  • iis搭建网站教程win10
  • css3知识总结
  • 出口退税进项税额转出怎么申报
  • 小微企业声明函去哪个部门开
  • 简易征收要交附合同吗
  • 办公费用开专票可以抵扣吗
  • 工资计提啥意思
  • 专票和普票都是13个点嘛
  • 预收货款开票怎么做账
  • 借款给别的公司怎么做账
  • mysql数据库函数
  • 短期贷款利息支付
  • mysql skip ssl
  • 汇算清缴纳税调整需要做账吗
  • 小规模纳税人可以开票吗?
  • 申报表本期金额和上期金额
  • 联通里的话费可以拿来干嘛
  • 出口货物预收账款分录
  • 租入的厂房
  • 公众号注册验证退款
  • 个体工商户是否要交税
  • 印花税是本月交上个月的吗
  • 滞纳金的收取范围是什么
  • 股票印花税是多少比例
  • 房地产企业资产负债率行业平均值
  • sql server 数学函数
  • win7系统u盘打不开怎么办
  • 主板升级bios失败怎么办
  • win7无法访问局域网电脑
  • win8右下角图标不见了
  • linux防火墙设置firewalld
  • 在Mac OS Yosemite 系统中如何发送超大邮件附件
  • ubuntu20怎么连接蓝牙鼠标
  • centos 常用命令教程
  • Win10 Mobile 10586无法更新应用怎么办 一招教你解决
  • jquery教程w3school
  • vue实现下载功能
  • JavaScript对象的创建
  • jquery的点击事件怎么写
  • JavaScript onkeydown事件入门实例(键盘某个按键被按下)
  • JAVAscript字符串类型单引号和双引号意一样吗
  • javascript中array的正确写法
  • 移动退订业务怎么恢复
  • 税务申报热线电话
  • 海南省税务局网站
  • 北京地税局报税流程
  • 关于个体户的个人所得税的最新政策法规
  • 消费税税目税率表2019
  • 新华保险有返本金吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号