收藏
回答

在自定义组件中打印数据的问题?

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>  //生效了


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

最后一次编辑于  11-13
回答关注问题邀请回答
收藏

2 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    11-13

    在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,你打印的那个变量被赋值了,但是变量还是那个变量,变量地址没变

    11-13
    赞同 1
    回复 1
    • DISGUISER_
      DISGUISER_
      11-14
      是的,我也改成ready周期了,谢谢拉
      11-14
      回复
  • DISGUISER_
    DISGUISER_
    11-13

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

    11-13
    赞同
    回复
问题标签