vue父组件异步请求成功后传值给子组件,子组件如何监听到

发布于 2022-09-13 00:26:12 字数 647 浏览 11 评论 0

父组件
<infcom :infdata="infDW"></infcom>

computed: {
infDW() {

 return this.infData

}
}

methods: {
getIData() {

接口请求  1分钟返回成功
if(res.code == '200'){
   this.infData = res.data
   console.log(this.infData)
}

}
}
mounted() {
this.getIDate()
}

子组件
watch: {
infdata(){

 console.log(this.indata)

}
// 或者
infdata:{

 deep:true,
 handler(n,o) {
  console.log(n.0)
 }
 console.log(this.indata)

}
}

父组件接口请求成功可以打印出数据
子组件的watch就没有执行
请问一下有哪里写错了吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

踏雪无痕 2022-09-20 00:26:12

首先,props可以做成动态的。
想要做边际影响,可以设置props的watch来获知变动。

那小子欠揍 2022-09-20 00:26:12

你的infData 应该是个对象吧
props:{
infoData:{
type:Object,
default:function(){

  return {}

}
}
},
watch: {
infoData:{
handler(n,o){

console.log(n)
},deep:true}
}
第2种方法:自定义事件
let bus=new Vue({})
在父组件的getData方法请求成功后
bus.$emit('eventName',data)
子组件里监听该事件
crated(){
bus.$on('eventName',data=>{console.log(data)})
}

情定在深秋 2022-09-20 00:26:12

父组件data中定义infData: [],
子组件使用深度监听
watch: {
infdata: {

handle() {},
deep: true,

},
},

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文