当前位置: 首页 > news >正文

vue中父组件异步获取数据给子组件传参

问题:

inferenceData:是父组件异步请求后获取的数据,获取成功之后父组件给子组件传递此数据,子组件使用,子组件获取不到inferenceData的值,打印结果为空数据,结果没有传递过去。

原因:异步请求还未获取到结果,已经初始化加载了子组件。

父组件:

 <el-main  v-loading="loading"
                          element-loading-text="拼命加载中"
                          element-loading-spinner="el-icon-loading"
                          element-loading-background="rgba(0, 0, 0, 0.8)" class="xb-main-table prescription-left-home xb-bg">
                    <Inference :inferenceData="inferenceData" :sendIndex="sendIndex"  :visitId="visitId"></Inference>
                </el-main>
created(){
    this.getInference();
},
methods:{
    async getInference() {
                const response = await inference(this, this.visitId);
                const data = response.data;
                console.log('----------------------获取推演图数据接口-------------------')
                console.log(data)
                if(response.code == 0){
                    for(var i = 0; i < data.length; i ++){
                        data[i].prescData = JSON.parse(data[i].prescData);
                        data[i].transferData = JSON.parse(data[i].transferData);
                    }
                    this.drugState = data[0].drugState;
                    this.treat = data[0].treat;
                    this.disease = data[0].disease;
                    //签名时默认传推演图第一个id,药方第一个id;
                    this.inferenceTransferId = data[0].id;
                    this.prescriptionDataList = data[0].prescData;//签名时默认第一个药方药材;
                    this.inferenceData = data;//非空的数组
                    this.loading = false;
                }
 
            },
}

 

解决方法:

在父组件异步请求成功后再初始化子组件,引用子组件时添加v-if="flag"

flag初始化为:false.

在异步请求成功后更改flag状态为true。

<el-main  v-loading="loading"
                          element-loading-text="拼命加载中"
                          element-loading-spinner="el-icon-loading"
                          element-loading-background="rgba(0, 0, 0, 0.8)" class="xb-main-table prescription-left-home xb-bg">
                    <Inference  v-if="flag" :inferenceData="inferenceData" :sendIndex="sendIndex"  :visitId="visitId"></Inference>
 </el-main>


async getInference() {
                const response = await inference(this, this.visitId);
                const data = response.data;
                console.log('----------------------获取推演图数据接口-------------------')
                console.log(data)
                if(response.code == 0){
                    for(var i = 0; i < data.length; i ++){
                        data[i].prescData = JSON.parse(data[i].prescData);
                        data[i].transferData = JSON.parse(data[i].transferData);
                    }
                    this.drugState = data[0].drugState;
                    this.treat = data[0].treat;
                    this.disease = data[0].disease;
                    //签名时默认传推演图第一个id,药方第一个id;
                    this.inferenceTransferId = data[0].id;
                    this.prescriptionDataList = data[0].prescData;//签名时默认第一个药方药材;
                    this.inferenceData = data;
                    this.loading = false;
                    this.flag = true;//状态更改
                }
 
            },

此时子组件在mounted中打印为非空数组。

相关文章:

  • 如何打造一个属于自己的命令行工具
  • git bash使用vue-cli创建项目无法切换选项
  • 线程和进程的区别是什么?
  • vue中的mixins(混入)使用场景介绍
  • webpack中,devServer.proxy跨域无效的解决办法
  • 数组里的字符串转换成数字或者把数字转换成字符串
  • 小米运动蓝牙耳机使用说明书-如果第二次切换到配对状态
  • el-input只能输入数字
  • element多个弹窗层级问题
  • 浅谈测试左移和测试右移
  • js去除字符串中的所有空格(包括前后,中间存在的所有空格)
  • js判断数组是否有重复值
  • 0-100
  • CSS文本超过两行用省略号代替(兼容所有浏览器)
  • 穿梭框+el-tree,递归实践
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • [译]前端离线指南(上)
  • Facebook AccountKit 接入的坑点
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • JavaScript标准库系列——Math对象和Date对象(二)
  • JS变量作用域
  • JS题目及答案整理
  • k个最大的数及变种小结
  • mac修复ab及siege安装
  • mysql innodb 索引使用指南
  • mysql外键的使用
  • opencv python Meanshift 和 Camshift
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Python利用正则抓取网页内容保存到本地
  • QQ浏览器x5内核的兼容性问题
  • 包装类对象
  • 代理模式
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 将 Measurements 和 Units 应用到物理学
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 前端存储 - localStorage
  • 前端知识点整理(待续)
  • 入门到放弃node系列之Hello Word篇
  • 说说动画卡顿的解决方案
  • 为视图添加丝滑的水波纹
  • 学习HTTP相关知识笔记
  • 06-01 点餐小程序前台界面搭建
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 移动端高清、多屏适配方案
  • #stm32整理(一)flash读写
  • $.ajax,axios,fetch三种ajax请求的区别
  • $GOPATH/go.mod exists but should not goland
  • (floyd+补集) poj 3275
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (算法二)滑动窗口
  • (五)c52学习之旅-静态数码管
  • (转)人的集合论——移山之道
  • (转载)Linux网络编程入门
  • .net 8 发布了,试下微软最近强推的MAUI