在微信小程序中操作执行成功后回到上一页,并进行刷新

可以使用 wx.navigateBacksuccess 回调函数来实现页面刷新的效果。具体来说,在 wx.navigateBacksuccess 回调函数中,可以调用上一页的 onLoad 函数来重新加载页面。可以按照以下步骤进行修改:

  1. 在返回上一页之前,将需要刷新的页面的页面栈编号(即 delta)保存到一个变量中,比如:

    var pages = getCurrentPages();
    var prevPage = pages[pages.length - 2]; // 获取上一个页面实例对象
    var delta = pages.length - prevPage.index - 1; // 计算需要返回的页面数
    
  2. wx.navigateBacksuccess 回调函数中,使用 wx.navigateBackdelta 参数返回上一页,并调用上一页的 onLoad 函数刷新页面,比如:

    wx.navigateBack({
      delta: delta,
      success: function () {
        prevPage.onLoad(); // 执行上一页的onLoad函数
      }
    })
    

将以上代码添加到当前代码的 wx.navigateBacksuccess 回调函数中即可。完整的代码如下所示:

saveNote: function() {
  var that = this;
  const app = getApp();
  const nickName = app.globalData.userInfo.nickName;
  console.log("昵称"+nickName)
  wx.showLoading({
    title: '正在保存',
  })
  wx.request({
    url: 'http://localhost:8080/miniwechat/note/addNote',
    method: 'POST',
    data: {
      title: that.data.noteTitle,
      content: that.data.noteContent,
      topicId:that.data.topicId,
      nickName:nickName
    },
    success: function(res) {
      wx.hideLoading();
      if (res.data.code == 1) {
        wx.showToast({
          title: '保存成功'
        })
        var pages = getCurrentPages();
        var prevPage = pages[pages.length - 2]; // 获取上一个页面实例对象
        var delta = pages.length - prevPage.index - 1; // 计算需要返回的页面数
        wx.navigateBack({
          delta: delta,
          success: function () {
            prevPage.onLoad(); // 执行上一页的onLoad函数
          }
        })
      } else {
        wx.showToast({
          title: '保存失败',
          icon: 'none'
        })
      }
    },
    fail: function() {
      wx.hideLoading();
      wx.showToast({
        title: '保存失败',
        icon: 'none'
      })
    }
  })
}
posted @ 2023-05-16 00:50  kobedu  阅读(2684)  评论(0编辑  收藏  举报