在app.js中,在 onShow 中能直接调用 wx.reLaunch跳转么?
发布于 5 年前 作者 yongduan 960 次浏览 来自 官方Issues

我在onShow中用场景值判断,然后跳转不同页面,但是使用wx.reLaunch页面会崩溃,直接空白,再次进去就是那个空白页。

使用wx.redirectTo是正常的,但是会跳转两次,会看到上次的页面,然后才进行的跳转



6 回复

onLaunch()里进行场景值判断,跳转到不同页面

为什么要在app.js的 onShow 里 wx.reLaunch 呢

后台切前台,热启动,onShow都会执行,这样都要重新 wx.reLaunch 一遍?

这个需求建议不要做在app.js里,既然是根据参数来跳转,那落地页应该是一个吧?在落地页的onShow或onLoad里来做。

app.js是全局的,这种只有某一部分用的功能最好别去干预它

如果要获取场景值,在app.js里的onshow取出来从到全局变量里给其他功能使用,在page的onload里处理就行了。

如果每个页面都有这种操作的话,就封装一下page的参数。

我测试了一下,没有你所说的会空白的问题,感觉是你的目标页面某些启动参数没能获取到

    onShow: function () {
        var res = wx.getLaunchOptionsSync()
        if(res.scene == '1001'){
            wx.reLaunch({
                url: '/pages/index/index',
            })
        }
    },

为什么不再首页处理这种逻辑,app.js 没做过这种跳转。不是很清楚。建议直接上一个代码片段

回到顶部