萝卜的搬砖之路 2022-05-11 11:28 采纳率: 100%
浏览 52
已结题

微信小程序开发,请求后端数组和本地数组合并为空

在开发微信小程序的时候,在列表界面需要上拉加载,所以需要每一页的数组合并,setdata函数渲染请求传来的数据是对的,但是跟本地数组合并的时候,就为空了,卡了好几个小时了


 data: {
  
    records:[],
},
 success (res) {
           if(res.data.code == 1)
           {
             console.log(res)
             
          
       
             that.setData({
           
              records:[...this.data.records,...res.data.data.records],
            //records:res.data.data.records,
            total:res.data.data.total,
             
             })
            
            
           }

下面是全部代码

// pages/consult/consult.js

// 获取应用实例
const app = getApp()


Page({

  /**
   * 页面的初始数据
   */
  data: {
    query:{},
    userInfo:"",
    openId:"",
    baseUrl:"",
    userId:'',
    records:[],
    pageNum:1,
    pageSize:10,
    order:1,
    total:0,
    isloading:false,
    },

  getShow(e){

    console.log(e.currentTarget.dataset.projectid)
    let id=e.target.dataset.projectid

    wx.navigateTo({
      url: '/pages/articleDetail/articleDetail?id='+id//跳转的页面和参数
    })
  },
  getalllist(){
      wx.showLoading({
        title: '数据加载中...',
      })
    this.setData({
      isloading:true
    })
    var baseUrl = app.globalData.baseUrl;
    var openId = app.globalData.openId;
    var token = app.globalData.token;

    this.setData({
     baseUrl: baseUrl,
     openId: openId,
     token:token,


   })

   if( openId  == ""){
     // 如果userInfo为null,没有登录
     wx.redirectTo({
       url: '/pages/login/login',
     })
     console.log("false")
   }else{


        // 发起网络

       var that = this;

        wx.request({
         
         url:baseUrl+"/project/projects",
         method: "GET",
         header: {
           'content-type': 'application/json' ,// 默认值
           "token":token
         },
        data:{
            pageNum:this.data.pageNum,
            pageSize:this.data.pageSize,
            order:this.data.order,
        },

         success (res) {
           if(res.data.code == 1)
           {
             console.log(res)
             
         
             that.setData({
       
              records:[...this.data.records,...res.data.data.records],
            //records:res.data.data.records,
            total:res.data.data.total,
             
             })
             // this.data.records = this.data.records.concat(res.data.data.records)
            
           }
           else{
             console.log(res)
           }
         },
         complete:()=>{
            wx.hideLoading()
            this.setData({isloading:false})
         },
    
       })
   }

  },
  /**
   * 生命周期函数--监听页面加载
   */

  onLoad: function (options) {
    this.setData({
      query : options
    })
    this.getalllist()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    if(this.data.pageNum * this.data.pageSize >= this.data.total)
    return wx.showToast({
      title: '数据加载完毕!',
      icon:'none',
    }) 
    if(this.data.isloading) return 
    this.setData({
      pageNum: this.data.pageNum + 1
    })
    this.getalllist()
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})

  • 写回答

1条回答 默认 最新

  • 全栈小5 全栈领域优质创作者 2022-05-11 11:34
    关注

    可能是this的问题
    把this.data.records改为that.data.records试下

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月11日
  • 已采纳回答 5月11日
  • 修改了问题 5月11日
  • 创建了问题 5月11日

悬赏问题

  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退
  • ¥20 win系统的PYQT程序生成的数据如何放入云服务器阿里云window版?
  • ¥50 invest生境质量模块