uniapp 一个页面跳到另一个页面onShow方法不执行呢
时间: 2023-08-25 16:04:48 浏览: 928
在 Uniapp 中,当从一个页面跳转到另一个页面时,通常情况下 onShow 方法会被执行。但是,如果你在跳转时使用了非正常方式,比如使用了 `uni.redirectTo` 或者 `uni.reLaunch` 方法,那么 onShow 方法可能不会被执行。
另外,如果你在跳转时使用了页面栈的功能,比如 `uni.navigateBack` 或者 `uni.switchTab`,那么跳转后的页面 onShow 方法也可能不会被执行。
如果你确定没有使用上述非正常跳转方式,而 onShow 方法仍然没有被执行,那么可能是因为页面已经被缓存,所以不会触发 onShow 方法。你可以尝试在跳转时使用 `uni.navigateTo` 方法,并在跳转前添加 `uni.$emit('pageRefresh')` 代码,然后在跳转后的页面中监听这个事件并在事件回调函数中执行需要执行的代码。这样可以保证页面跳转后 onShow 方法能够被正确执行。
相关问题
uniapp另一个页面跳到来刷新页面
在UniApp中,可以使用uni.navigateTo或uni.redirectTo方法来跳转到另一个页面,并使用页面间通信来实现刷新页面的效果。
首先,在当前页面中,可以通过uni.navigateTo或uni.redirectTo方法跳转到目标页面。例如,使用uni.navigateTo跳转到目标页面:
```javascript
uni.navigateTo({
url: '/pages/targetPage/targetPage'
});
```
接下来,在目标页面中,可以使用onShow生命周期函数来监听页面显示的时机,然后在该函数中执行刷新操作。例如,在目标页面的script标签中添加以下代码:
```javascript
export default {
onShow() {
// 执行刷新操作
this.refreshPage();
},
methods: {
refreshPage() {
// 执行刷新操作的代码
console.log('页面已刷新');
}
}
};
```
这样,当从当前页面跳转到目标页面时,目标页面会在显示时自动执行refreshPage方法进行刷新操作。
注意:如果使用uni.redirectTo方法跳转到目标页面,则当前页面会被销毁,而使用uni.navigateTo方法跳转到目标页面,则当前页面会被保留在栈中。根据具体需求选择适合的方法来跳转页面。
uniapp onshow不执行 怎么解决
在uniapp中,onShow是小程序生命周期函数之一,用于监听页面显示。如果onShow不执行,可能有以下几个原因:
1. 页面没有被隐藏过:onShow只有在页面被隐藏后再次显示时才会触发。如果页面一直处于显示状态,onShow就不会执行。
2. 页面被打开方式不同:如果页面是通过打开新页面、返回页面或者tab切换等方式进行打开的,onShow也会触发。如果是通过其他方式打开的,比如分享、复制链接等,则不会触发。
3. onShow代码出现问题:如果onShow里面的代码出现了错误,也有可能导致onShow不执行,建议检查代码是否存在语法错误或逻辑问题。
4. 全局配置问题:如果全局配置文件中关闭了页面的自动监听,也会导致onShow不执行。可以检查uni-app的globalConfig.js文件,看看是否有配置autoAddPageToList字段。
希望以上内容对你有所帮助。
阅读全文