子组件接受父组件异步传值的问题

子组件接受父组件异步传值的问题

老师我碰到了个情况,就是子组件接收父组件异步传来的值,页面一刷新值就为空,但是代码改动一下热更新后就有值了,这是什么问题

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕慕子 2022-09-26 11:39:11

同学你好, 猜测可能是因为异步导致的,可以尝试添加数据侦听,监听数据的改变,再进行下一步操作试试,如果还有问题,可以将你写的完整代码粘贴过来,老师帮助测试看看,祝学习愉快~

  • 提问者 weixin_慕仔7472133 #1

    // 父组件

    <div class="data">

    <show-data :geoData="geoData" />

    </div>


    const getData = async (time, type) => {

         const res = await getList(handleDate(time));

         // console.log(res);

         geoData.value = res.data.mapVal;

    }

    // 子组件

    const props = defineProps({

    geoData: {

    type: Object as PropType<any>,

    },

    });

    const geoData = ref(props.geoData);

    console.log(geoData.value);

    watch(props, (news, olds) => {

     console.log(news.geoData);

     console.log(olds.geoData);

     geoData.value = news.geoData;

    });

    console.log(geoData.value);

    最终watch里面的打印是有数据的,watch外面的打印为空

    2022-09-26 12:01:14
  • 就是异步的问题,只有部分代码,无法定位同学具体的需求,同学可以在watch里面设置值,如果需要在template中展示,那么推荐添加个判断,在数据有值的时候才展示。

    祝学习愉快~

    2022-09-26 13:40:34
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码