小程序开发中,会碰到频繁渲染组件的问题,比如A页面有两个子组件B,C;A中获取数据后,去渲染B组件,如果单依据组件生命周期来实现数据刷新,这时候会遇到数据依然是之前老数据的问题,无法实现要求,这时候解决办法是 给组件B定义id, 当A获取到数据的时候,通过在A页面中调用this.selectComponent(id).refresh();
注: refresh()函数是定义在组件B中,如下
A.wxml
<B id="loadB"></B>
<C></C>
B.js
method:{
refresh() {
var dataInfo = this.data.User;
this.setdata({key:dataInfo});
}
}
B.wxml
<view>{
{key}}</view>
A.js
loadNet() {
xxxx.gerRequest(url,param).then(res => {
this.selectComponent("loadB").refresh();
})
}