• 问题(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;
          }
        })
      },
    })
    
  • 相关阅读:
    GYM 101572C(模拟)
    GYM 101572A(单调队列优化dp)
    Codeforces 183C(有向图上的环长度)
    Codeforces 183A(坐标系性质)
    2019湘潭校赛 G(并查集)
    2019湘潭校赛 H(dp)
    2019湘潭校赛 E(答案区间维护)
    Codeforces 1141F2(贪心、预处理)
    Codeforces Round #411(Div. 2)——ABCDEF
    基数排序学习
  • 原文地址:https://www.cnblogs.com/dudududadada/p/13552266.html
Copyright © 2020-2023  润新知