vue3 watch 报错 Invalid watch source

在 vue3 中使用 watch 监听弹框的 visible,控制台报错警告
runtime-core.esm-bundler.js:40 [Vue warn]: Invalid watch source: true A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.

代码写法:
watch(props.visible, (newVal) => {
    if (newVal) {
        xxxx....
    }
})
一开始以为是不能直接用这种简单数据类型,改成了对象,后面看了官方文档,发现是写错了
监听值要用函数返回 () => props.visible
正确写法:
watch(() => props.visible, (newVal) => {
    if (newVal) {
        xxxx....
    }
})
如果你监听的是一个对象, 如:
watch(props.formData, (newVal) => {
if (newVal) {
xxxx....
}
})

控制台不会报错,但是不会进入你的 (newVal) => {}函数中,可能半天都找不到问题

之前 vue2 总是直接写值,所以一定一定要检查自己的语法写得对不对
posted @   潇湘羽西  阅读(5141)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示