vue3 setup中子组件接收的props变化了,但是没有触发watch或者watchEffect,是什么原因呢?

作者站长头像
站长
· 阅读数 17

父组件

<fireNumItem :timeParam="timeParam" />

    const timeParam = ref({
            startTime: dayjs().startOf('year').format('YYYY-MM-DD HH:mm:ss'),
            endTime: dayjs().format('YYYY-MM-DD HH:mm:ss')
        }); // 时间参数

子组件

interface Props {
        timeParam: Object,
    }
    const { timeParam } = defineProps<Props>();
    toRefs(timeParam);
    
    watch(timeParam, () => {
        console.log('timeParamWatttttt', timeParam.value);
    }, { deep: true,immediate:true })
    watchEffect(() => {
        console.log('timeParamEffect', timeParam.value);
        // getSiteTypeData();
    })

子组件页面上的都变化了,就是不触发监听事件,什么原因呢?

回复
1个回答
avatar
test
2024-07-13

解构 props 对象 会丢失其内部原始类型的响应式

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容