d***@163.com
d***@163.com
  • 发布:2022-05-04 12:41
  • 更新:2022-10-28 09:30
  • 阅读:935

【报Bug】vue3组合式setup语法,子组件不能 watch监听 prop 变化

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: macos high sierra

浏览器平台: Chrome

浏览器版本: 100

项目创建方式: CLI

CLI版本号: 3.0.0-alpha-3040820220426002

示例代码:

子组件

<script setup lang="ts">  
import { watch, watchEffect } from 'Vue'  
type IListObj = Record<string, string | number | Array<IListObj>>  
interface Props {  
    modelValue: string | number | string[] | number[],  
    list: Array<IListObj>  
}  
const props = withDefaults(defineProps<Props>(), {  
    modelValue: '',   
    list() {  
      return []  
    }  
})  
watch(() => props, (val) => console.log(val))  
watch(() => props.list, (val) => console.log(val))  

watchEffect(() => {  
  console.log('modelValue: ', props.modelValue)  
  console.log('list: ', props.list)  
})

父组件:

<child v-model="xx" :list="list">  

当 xx 或者 list 变化时,子组件中的 watch 和 watchEffect 都不会触发

操作步骤:

更改 xx 或者 list 的值,子组件中的 watch 和 watchEffect 都不会触发

预期结果:

watch 和 watchEffect 触发

实际结果:

没有触发

bug描述:

vue3 setup 子组件不能 watch监听 prop 变化

2022-05-04 12:41 负责人:无 分享
已邀请:
4***@qq.com

4***@qq.com

同样遇到问题了。我h5是好的,小程序不行

  • 4***@qq.com

    奥,我是因为 prop 名称的格式问题, 不要用 :data-source="xx", 用驼峰的:dataSource="xx", 小程序就表现一致了

    2022-10-28 10:16

要回复问题请先登录注册