自定义组件为什么比页面的onload还先执行?
发布于 6 年前 作者 tanjun 10969 次浏览 来自 问答

如果直接使用自定义组件star,在页面的onload中执行的代码是在star组件执行之后的,导致在onload中修改的info.star数据传递不过去,组件不能正常显示,后来在外层使用wx:if判断使组件重新渲染后数据才能传递过去,这种情况怎么破啊?

3 回复

JS 代码怎么写的,看描述不是很清晰,请给出代码示例

页面的onLoad执行时机确实是在所有组件初始化完成之后的。

onload中先请求数据,返回的数据res.data.info是一个对象,然后把res.data.info设置给data中的info

wxml中用info进行渲染,info.star是星星组件的评分,但是组件不能根据info.star的值正常显示分数,会显示0分,因为组件里的js比这个页面的onload先执行,所以渲染组件的时候{{info.star}}相当于undefined,除非在星星组件的父元素上添加wx:if属性,才能正常显示

回到顶部