【bug记录】vue中如何解决watch监听数据后props根据v-if动态判断并挂载DOM的问题

    问题如图

问题复现:父组件中通过名为 seriesData的 prop 向子组件 LineChart 传入数据

 父组件:

接口返回的数据:enterpriseData

接口数据处理过的数据:LineData

<LineChart
   :title="'xxxx统计'"
   :series-data="LineData"  
   :enterprise-data="enterpriseData"
   @setRegionCode="handleRegionCode" 
   @resetLineData="resetLineData"
   />

子组件:接收 seriesData数据当存在且至少有一条数据的时候,创建 id 为 lineId 的 div,用以初始化 echarts 实例

<template>
<div v-if="enterpriseData&&enterpriseData.length > 0" :id="lineId" :style="style" />
<div v-else class="emptyDataWarp">
<emptyData />
</div>
</template>

我们需要用v-if判断空数据时,展示空页面;

既然如此我们保留 v-if 但写法有所改变:

修改 LineChart 组件:

<div v-if="enterpriseData&&enterpriseData.length > 0" style="width: 100%; height: 100%">
   <div :id="lineId" :style="style" />
</div>
<div v-else class="emptyDataWarp">
   <emptyData />
</div>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

许呵呵的夏天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值