问题(2)评论实时刷新

提交评论后实时刷新

写文章评论页面的时候发生了bug,发送评论之后调用评论列表,第一次评论完可以实时出现,第二次评论列表消失

但在我另起一个页面,用在评论回复里的时候就可以实现回复完毕实时刷新

第一个评论列表的并没有解决,在评论完之后提示评论成功,刷新页面后显示

下面是回复页面的代码

// pages/replaypage/replaypage.js
const app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    replaylist:[],
    commentlength:0,//加载长度
    hasMoreData: true,//上拉时是否继续请求数据,即是否还有更多数据
    pagenum:0,
    origComment:[],//原评论列表,
    commentlength:0,
    replayvalues:'',//input内容
    canshuru:0,//input剩余可输入长度
    list:[],//控制下拉加载,
    liketype: false, //点赞评论初始为unlike


    
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.getreplyList();
    this.origComment()
  },

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

  },

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

  },

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

  },

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

  },

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

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    var that = this;
    if (that.data.hasMoreData) {
      that.data.pagenum += 1;
      // console.log(that.data.pagenum);
      // this.getInfo('加载更多数据')
      wx.showLoading({
        // title: '加载更多数据',
      })
    } else {
      wx.showToast({
        icon: "none",
        title: '没有更多数据'
      })
    }
  },

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

  },
  // 原评论内容
  origComment(){
    console.log(wx.getStorageSync('origComment'))
    this.setData({
      origComment: wx.getStorageSync('origComment')
    })
    // origComment

  },
  getreplyList() {// 回复列表
    var thats = this;
    var cid = wx.getStorageSync('cid');
    wx.request({
      url: app.globalData.baseUrl + "/api/article/commentreply/getList",
      method: 'GET',
      data: {
        cid: cid, // 评论id
        pagesize: 30, //一页多少条 默认20
        pagenum: thats.data.pagenum, //页码
      },
      header: {
        'content-type': 'application/json',
        'mysessionid': '' + wx.getStorageSync("sessionid")
      },
      success: (res) => {
        console.log(res);
        console.log(res.data.data);
        thats.setData({
          replaylist: res.data.data
        })

        //下拉加载
        if (res.statusCode == 200) {
          wx.hideNavigationBarLoading()
          wx.hideLoading()
          let list = res.data.data; //从此次请求返回的数据中获取新数组
          thats.setData({
            commentlength: list.length
          })
          // wx.setStorageSync('firstpinglun', list[0])
          // wx.setStorageSync('comment', thats.data.comment)
          if (res.data.data.length === 0) {
            wx.showToast({
              icon: "none",
              title: '没有回复了呢'
            });
            thats.setData({
              hasMoreData: false
            })
          } else {
            let datas = thats.data.list;
            console.log(datas)
            thats.setData({
              list: datas.concat(list),
              hasMoreData: true
            })
          }

        }
      }
    });
  },
  //发布回复
  replycomments() {
    var _that = this;
    wx.request({
      url: app.globalData.baseUrl +
        '/api/article/commentreply/add',
      method: 'POST',
      data: {
        cid: wx.getStorageSync('cid'),// 评论id
        replyuserid: _that.data.origComment.userid,//被回复用户id
        content: _that.data.replayvalues,//回复内容
      },
      header: {
        'content-type': "application/x-www-form-urlencoded",
        'mysessionid': '' + wx.getStorageSync("sessionid")
      },
      success(res) {
        console.log(res)
        if (res.data.msg == '请登录') {
          console.log("授权过期请重新登录")
          wx.navigateTo({
            url: '../login/login',
            success: function (res) { },
            fail: function (res) { },
            complete: function (res) { },
          })
        }
      }
    })
    this.setData({
      replayvalues: ''
    })
    // console.log(this.data.replayvalue)
    this.getreplyList();
  },

  replayvalue(e) {//获取到回复input的值87
    console.log(e.detail.value)
    this.setData({
      replayvalues: e.detail.value,
      canshuru: e.detail.value.length
    })
    console.log(e.detail.value)
    console.log(e.detail.value.length)

  },
  // 回复点赞
  typelike(e) {
    // =====================
    var likeFlag = false; //标志,避免多次发请求
    //避免多次点击
    if (likeFlag === true) {
      return false;
    }
    var that = this;

    // ===================
    this.setData({
      liketype: !this.data.liketype,
    })
    var type = that.data.liketype ? 'like' : 'unlike';
    // var comment = this.data.comment;
    var index = e.currentTarget.dataset.dex;

    console.log(type)
    // console.log(this.data.comment)
    // console.log(this.data.replaypage)
    // console.log(e.currentTarget.dataset.id)
    var id = e.currentTarget.dataset.id
    console.log(index)

    var message = this.data.comment;

    // ----------------------------------------
    wx.request({
      url: app.globalData.baseUrl + "/api/article/commentreply/like",
      method: 'POST',
      data: {
        id: id, // 评论id
        type: type, //like 点赞 unlike 取消赞
      },
      header: {
        'content-type': "application/x-www-form-urlencoded",
        'mysessionid': '' + wx.getStorageSync("sessionid")
      },
      success: function (res) {
        console.log(res);
        for (let i in message) { //遍历列表数据
          if (i == index) { //根据下标找到目标
            var collectStatus = false
            if (message[i].likecount >= 0) {
              if (message[i].likecount == 0) { //如果是没点赞+1
                collectStatus = true
                message[i].likecount = parseInt(message[i].likecount) + 1
              } else {
                collectStatus = false
                message[i].likecount = parseInt(message[i].likecount) - 1
              }
            } else if (message[i].likecount < 0){
              message[i].likecount = 0
            }


          }
        }
        that.setData({
          replaylist: message
        })
        that.getreplyList() 
      },

      complete: function (res) {
        likeFlag = false;
      }
    })
  },
})
原文地址:https://www.cnblogs.com/dudududadada/p/13552266.html