无名阁,只为技术而生。流水不争先,争的是滔滔不绝。

(uni.navigateback) uniapp中uni.navigateBack返回后刷新页面数据的实现 在uniApp中实现uni.navigateBack返回后刷新页面数据 全网首发(图文详解1)

前沿技术 Micheal 5个月前 (06-08) 89次浏览 已收录 扫描二维码

(uni.navigateback) uniapp中uni.navigateBack返回后刷新页面数据的实现

在uni-app中,uni.navigateBack用于返回上一页面。但在默认情况下,返回后上一页面的数据不会自动刷新。要实现返回后刷新页面数据,可以通过以下几种方法解决:

方法一:监听页面返回事件

在需要刷新数据的页面上,通过onShow生命周期钩子来监听页面的显示。由于onShow会在页面返回到当前页面时触发,我们可以在这个钩子内执行数据刷新的逻辑。

示例代码:

export default {
  onShow() {
    // 页面显示时,执行数据刷新逻辑
    this.refreshData();
  },
  methods: {
    refreshData() {
      // 执行数据刷新操作
      console.log('刷新数据');
      // 例如,重新请求接口,更新数据
      // this.getList();
    }
  }
}

方法二:使用全局事件通信

  • 在跳转前的页面发送事件

    使用uni.$emit方法,在跳转之前发送一个自定义事件,并携带必要的参数。

    示例代码:

    // 跳转前先发送事件
    uni.$emit('refreshPage', { refresh: true });
    
    // 然后执行页面跳转
    uni.navigateTo({
     url: '/pages/targetPage/targetPage'
    });
  • 在返回的页面监听事件

    在需要刷新数据的页面监听这个自定义事件,并在事件回调中执行刷新数据的逻辑。

    示例代码:

    export default {
     onLoad() {
       // 监听refreshPage事件
       uni.$on('refreshPage', (data) => {
         if (data.refresh) {
           // 执行数据刷新操作
           this.refreshData();
         }
       });
     },
     onUnload() {
       // 页面销毁时取消监听
       uni.$off('refreshPage');
     },
     methods: {
       refreshData() {
         // 刷新数据操作
         console.log('数据被刷新了');
         // 如重新获取数据等操作
         // this.getList();
       }
     }
    }

方法三:使用页面传参

利用uni.navigateTouni.redirectTo等方法的success回调函数,手动调用前一个页面的方法来更新数据。

示例代码:

// 假设当前在A页面,跳转到B页面
uni.navigateTo({
  url: 'path/to/B',
  success: function(res) {
    // 获取页面实例,-1代表上一级页面
    let page = getCurrentPages().find(p => p.route === 'path/to/A');
    if (page) {
      // 调用A页面的refreshData方法更新数据
      page.refreshData();
    }
  }
});

以上方法都可以实现在uni-app中使用uni.navigateBack返回后刷新页面数据的功能。具体使用哪种方法,可以根据项目的实际情况和需求来决定。
(jdk17下载) Java SE Development Kit(JDK) 17.0.11 官方正式版 Win64 Java SE Development Kit 17.0.11 官方正式版 全网首发(图文详解1)
(promise race) 一文详解Promise.race()方法功能及应用场景 Promise.race() 方法:处理多个Promise的最先解决或拒绝结果 全网首发(图文详解1)

喜欢 (0)
[]
分享 (0)
关于作者:
流水不争先,争的是滔滔不绝