提交评论后实时刷新
写文章评论页面的时候发生了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;
}
})
},
})