在自定义组件中打印数据的问题?
发布于 7 年前 作者 ligao 12675 次浏览 来自 官方Issues
properties:{
     category:String,
     category_sub:String
}

category是通过properties传递值了的。

在自定义组件的attached周期内console.log(this.data),返回


这里并没有显示,但展开后

却显示是存在的。

而且如果打印console.log(this.data.category)或console.log(this.properties.category),返回的也是空值,可是它明明已经传递过来了啊,而且在模板里也是有效的

<view wx:if="{{category}}">{{category}}</view>  //生效了

使用的开发工具是最新的开发版的

2 回复

改成在ready周期内执行此操作没有问题了,可能是attached周期数据没有渲染完成吧。。?

在page的onLoad里setData

this.setData({

    types:[1,2,3]

})

<test types="{{types}}" />

组件里生命周期方法里打印types和时间顺序如下:

created [] 2019-11-13 21:05:16.036  => 组件的created

attached [] 2019-11-13 21:05:16.045  => 组件的attached

page onload 2019-11-13 21:05:16.053  => 页面的onLoad

pageLifetimes show 2019-11-13 21:05:16.058  => 组件里pageLifetimes里的show

page onShow 2019-11-13 21:05:16.059  => 页面的onShow

ready (3) [1, 2, 3] 2019-11-13 21:05:16.114  => 组件的ready

可以看出,组件最开始执行的是created,最后才是ready,也只有到了ready,才能打印出组件的this.data.types

所以你在attached里打印的对象里的数据为空,虽然为空但是你展开后却有值,那是因为,到了ready,你打印的那个变量被赋值了,但是变量还是那个变量,变量地址没变

回到顶部