收藏
回答

自建组件列表渲染无效?

如题,我在测试页面的列表渲染正常,作为组件后列表渲染失效

WXML如下:

<view class="container">
  <view class="day {{item.record?'dayRecord':''}}" wx:for="{{dateList}}" wx:key="date">
    {{item.date}}
  </view>
</view>

js:

 created:function(){
    let dayCount = this.getDayCount(2020, 5);//获得这个月的天数
    console.log(dayCount);// 打印值31,正确
    let dateList = [];
    for (let i = 1; i <= dayCount; i++) {
      let date = {};
      date.date = i;
      if (i % 5 == 0) {
        date.record = true;//判断是否打卡
      }
      date.record = false;//判断是否打卡
      dateList.push(date);//放入列表
    }
    console.log(dateList);//列表打印值正常
    this.setData({ dateList: dateList });
  }

组件打印的dateList值如下:

然后dateList无误的情况下,列表渲染失败,如下:

而同样代码,在非组件的test页面测试渲染结果正常:

请问各位大佬这是什么问题??

回答关注问题邀请回答
收藏

1 个回答

  • Darren i
    Darren i
    2020-05-25

    问题已解决:

    组件实例刚刚被创建好时, created 生命周期被触发。此时,组件数据 this.data 就是在 Component 构造器中定义的数据 data 。 此时还不能调用 setData 。 通常情况下,这个生命周期只应该用于给组件 this 添加一些自定义属性字段。

    把created 改为 attached

    2020-05-25
    有用
    回复
登录 后发表内容
问题标签