猿问

vue渲染子组件异步问题

现在有一个组件A。里面包含了组件B,C,D,由于涉及了数据共享,组件B需要用x参数发请求,但是x参数是在A里面发请求获取到的,现在出现的问题是在A还没获取到参数x的时候B就已经先一步发请求了(结果请求400错误),出现问题的根本问题是父组件与子组件的渲染都是异步进行的,在父组件获取参数时用了async+await。

async beforeMount(){    let x = await this.getCityInfo();    this.GET_POSITION(x);    console.log(11);
},

现在目前能想到的方案就将B,C,D全部整合到A内部,使A内部没有子组件,这样就不会有组件之间异步渲染的问题,请问还有其他更好的方案吗?


绝地无双
浏览 668回答 1
1回答

HUX布斯

获取&nbsp;x&nbsp;成功之前不渲染&nbsp;B<B&nbsp;v-if="x"></B>或者&nbsp;B&nbsp;自己 watch prop&nbsp;x&nbsp;,值不对不发请求。watch:&nbsp;{ &nbsp;&nbsp;x&nbsp;(value)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(value)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;send&nbsp;request &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;} }
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答