收藏
回答

appdata中有数据,但是无法渲染到页面上,百度了,但貌似没有用?

appdata里有数据


console里面有数据


这个是源码

const db=wx.cloud.database()
Page({
  data: {
    ranking_list:[]
  },
  onLoad(){
    db.collection('users').orderBy('ranking_data.done_sum','desc')
    .get({
      success:res=>{   
      for(let i=0;i<res.data.length;i++)  
      {
        this.data.ranking_list.push({_id:res.data[i]._id,imgURL:res.data[i].imgURL,name:res.data[i].name,ranking_data:res.data[i].ranking_data})
        console.log(this.data.ranking_list)
      } 
    }
  })
}
)}


<view wx:for="{{ranking_list}}" wx:key="*this">
  <view>{{item._id}}</view>
</view>




难道是数据还没有开始获取,wxml就已经渲染完成了吗?????????

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

6 个回答

  • ⅴ
    2022-08-22

    需要用 this.setData 才会更新UI

    this.setData({

    ranking_list: ****

    })

    2022-08-22
    有用 3
    回复 2
    • 风华漫舞
      风华漫舞
      2022-08-22
      这样吗。。好像还是不行
      2022-08-22
      回复
    • ⅴ
      2022-08-22回复风华漫舞
      for(let i=0;i<res.data.length;i++)
            {
              this.data.ranking_list.push({_id:res.data[i]._id,imgURL:res.data[i].imgURL,name:res.data[i].name,ranking_data:res.data[i].ranking_data})
              console.log(this.data.ranking_list)
            } 
      加上:
      let rankingList= this.data.ranking_list
      this.setData({
          ranking_list: rankingList
      })
      2022-08-22
      3
      回复
  • 跨商通
    跨商通
    2022-08-22

    1、要想UI有变化,有且只有this.setData

    2022-08-22
    有用
    回复
  • Frank
    Frank
    2022-08-22

    改变数据时,需要通过setData这个api,才能将逻辑层数据渲染到视图层

    2022-08-22
    有用
    回复
  • Mr.Zhao
    Mr.Zhao
    2022-08-22

    这就是啊,代码变个写法就不会了,没有this.setData

    2022-08-22
    有用
    回复 2
    • 风华漫舞
      风华漫舞
      2022-08-22
      这么写的话。有问题吗。好像还是不行
      2022-08-22
      回复
    • Mr.Zhao
      Mr.Zhao
      2022-08-22回复风华漫舞
      认真点吧  this.setData 不是setdata
      2022-08-22
      回复
  • Lipeng
    Lipeng
    2022-08-22

    看来你不太理解小程序的渲染机制,UI和JS是相互独立双线程运行的,它不是Vue那样的双向绑定。

    页面第一次渲染时会拿data预设数据来渲染。后续的运行时渲染必须通过this.setData把逻辑层JS数据传递给试图层线程。直接this.data里赋值是无效的。

    2022-08-22
    有用
    回复
  • 风华漫舞
    风华漫舞
    2022-08-22

    但是如果我在js里面对ranking_list这么定义,他就。。。。

    data: {

        ranking_list:[{_id:1}]

      },


    有结果。。。

    2022-08-22
    有用
    回复
登录 后发表内容