背景:页面A含子组件B。B为表单组件,内含5个下拉框,下拉选项均由后端接口K返回,所填值由缓存接口M返回。在A页面调接口K和接口M,传值给子组件B。通过打印可知,接口K和接口M的请求和返回均为顺序执行,即先收到接口K的返回,再收到接口M的返回。选项及选项值均已装载,但无法显示。
思路:用v-if强制刷新。
step1:在页面A内引入子组件B时增加v-if
<application-card
ref="guardianCard"
:formData="formData"
:fieldDataList="fieldDataList"
v-if="isShowAppCard"
></application-card>
注:formData即为传递的值value,fieldDataList内含选项options.
step2:data中初始化值为true(显示该组件)
data() {
return {
isShowAppCard: true,
}
}
step3:在调用接口前将其置为false
created(){
this.isShowAppCard = false;
this.setOptions(); // 装载选项
this.getValue(); // 获取缓存值
}
step4:获取缓存后将其置为true
methods:{
getValue(){
......
console.log(res)
this.isShowAppCard = true;
}
}