做项目的时候遇到一个问题。
比如页面有三个view 标签。假设view1 view2里的内容是通过ajax拿数据塞进去的,view3里面是写死的内容,比如文字图片啥的。
我想要获取一个view3相对于页面的top值,
而view1 view2的内容是由ajax异步获取的,然
直接在onload 或者onShow 或者onReady 获取view3 的top值 会发现。获取的值为0.
做过vue 或者小程序的人应该都明白为什么。
怎么处理这样的问题? vue里貌似可以用nexttick 处理。
做项目的时候遇到一个问题。
比如页面有三个view 标签。假设view1 view2里的内容是通过ajax拿数据塞进去的,view3里面是写死的内容,比如文字图片啥的。
我想要获取一个view3相对于页面的top值,
而view1 view2的内容是由ajax异步获取的,然
直接在onload 或者onShow 或者onReady 获取view3 的top值 会发现。获取的值为0.
做过vue 或者小程序的人应该都明白为什么。
怎么处理这样的问题? vue里貌似可以用nexttick 处理。
setData有callback;
this.setData({
primeTipDown: wx.getStorageSync('primeTip')===""?true:wx.getStorageSync('primeTip')
},() => { // 在这里执行计算top的方法
this.computedPrimeTipStatus()
})
其实这无关于你用什么框架,你的目的是等待view1和view2的ajax回来渲染完成之后获取view3的top值
那么你可以使用Promise.all
await Promise.all([view1,view2])
this.$apply()
// 在这获取view3的top
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
5 回答1.9k 阅读
既然你提到了是 ajax 获取数据的。
获取完数据的更新应该是用的
setData
吧,有类似React
的第二个参数callback
的。https://developers.weixin.qq....