Dialog in Vue 传值

...
<xx-dialog v-if="dialogData" :dialog-data="dialogData"/>
...

data () {
    return {
    ...
    dialogData: xxx
    ...
    }
}

问题描述:

父控件绑定动态值到Dialog,Dialog第一次展示未能接收到值,第二次打开Dialog才能接收到值。

关于将v-if换成v-show,让dialog积极渲染,dialog在父控件渲染时就加载出来了,不能实现初始隐藏。

目标:

第一次打开就能接收到变化的值(已解决)。

解决方案:

  1. 针对不需要动态更新的数据,可采用将绑定值设置为props。
...
<xx-dialog v-if="dialogData" :dialog-data="dialogData"/>
...

props: {
    ...
    dialogData: {
        default: xxx
    }
    ...
}

  1. 需要将值动态传入Dialog解决方案。其实很简单,在原来基础上,做一下代码调整及即可,将父控件的 v-if 移动到子控件
// 父控件
<xx-dialog :dialog-data="dialogData"/>

// 子控件
<xx-dialog
    v-if="dialogData"
    ...>
    ...
</xx-dialog>

...
props:['dialogData']
...

前端菜鸟,入行不久,找了半天经验都未能找到解决方案,只找到一些类似的问题存在,发表博客纯属经验分享。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值