山东大学项目实训——微信小程序关于页面的几个问题

一、微信小程序返回上一个页面并刷新上一个页面

在此项目中比如在收藏详情页面取消收藏,要同步到上一个页面,即上一页面要反馈出操作后结果的信息,此时应该如何解决呢?

首先获取当前页面栈

		var pages = getCurrentPages();
        var currPage = pages[pages.length - 1];   //当前页面
        var prevPage = pages[pages.length - 2];   //上一个页面

然后对上一个页面,prevPage进行操作,如果要刷新的话,可以使用prevPage.onLoad()方法。这样就能刷新上一页面了。

如果要进行创建,采用如下代码

var pages = getCurrentPages();
var prevPage = pages[pages.length - 2];
// 调用列表页的获取数据函数
prevPage.loadData();
// 跳转
wx.redirectTo({
	url: '/pages/info/info',
});

如果要进行删除,采用如下代码

var pages = getCurrentPages();
var prevPage = pages[pages.length - 2];
prevPage.loadData();
wx.navigateBack({
	delta: 1,
})

这里需要使用navigateBack返回上一级页面。

二、如何停顿一段时间再进行页面切换(setTimeout方法)

number setTimeout(function callback, number delay, any rest)
参数

function callback
回调函数

number delay
延迟的时间,函数的调用会在该延迟之后发生,单位 ms。

any rest
param1, param2, …, paramN 等附加参数,它们会作为参数传递给回调函数。

返回值

number
定时器的编号。这个值可以传递给 clearTimeout 来取消该定时。

示例代码:

  setTimeout(() => {
     //需要定时的代码区域
    }, 1000);//1000代表1秒

在项目中退出登录时应用到了这一个技术,有一秒的缓冲使得跳转显得不是很突兀,提升用户体验感。

三、报错:{“errMsg”:“redirectTo:fail can not redirectTo a tabbar page”}及跳转总结

当调用redirectTo方法页面跳转为tabar页面时报错。
属于tabbar的页面,只能通过wx.switchTab来跳转。

示例代码:

 // 提交完跳回巩固页面
    wx.switchTab({
      url: '/pages/my/my',
    })

项目中用到这个技术的原因是my页面是tabar页面,所以要用swichTab方法。
总体项目是退出登录后停顿一秒返回到my页面,my页面是一个tabar页面。

项目代码示例:

setTimeout(() => {
      wx.switchTab({
        url: '/pages/my/my',
      })
    }, 1000);
    

几种跳转方式比较
1.wx.redirectTo:关闭当前所在页面,再跳转到指定的非TabBar页面。不受页面层数限制。
2.wx.navigateTo:不关闭当前所在页面,跳转到指定的非TabBar页面,注意页面路径限制是五层。左上角会显示一个返回按钮,可以直接返回到上一层页面。
3.wx.switchTab:只可以跳到属于tabBar的页面

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值