小程序——带参返回上一页几种方法

小程序的页面跳转API像wx.navigateTo()、wx.redirectTo()之类的,都是跳转到一个全新的页面,当这个页面是表单的时候,有时候需要跳转到其它页面选取信息后再跳转回来,那之前填的信息就必须得存在,这个时候可以当跳转到选择信息的页面,选中信息后设置设置上一页的data,然后再返回到上一页,这样数据都会存在。

方法一 把当前页面数据放入本地缓存( wx.setStorage(wx.setStorageSync),上一个页面再从缓存中取出(wx.getStorage(wx.getStorageSync))同时退出登录时要清除缓存(wx.clearStorage(wx.clearStorageSync))。

方法二

  1. 在当前页设置上一页的data,例如
var pages = getCurrentPages();             //  获取页面栈
var currPage = pages[pages.length - 1];    // 当前页面
 var prevPage = pages[pages.length - 2];    // 上一个页面
 prevPage.setData({
   mydata: {a:1, b:2}                       // 假数据
 })

当然这个“mydata”必须是上一页有的数据才行

返回上一页的数据为:

wx.navigateBack({
 delta: 1
 })
  1. 直接调用方法名来更新数据
页面A
Page({
     data: {
        name: ''
     },
     ...
     ,
     //更新name
     changeData: function(name){
        this.setData({
            name: name
        })
     }
})

页面B,假设有一个文本框用于输入姓名,点击返回按钮后更新页面A的name

Page({
    //此方法用于文本框输入回调
    inputTyping: function (e) {
        //获取页面栈
        var pages = getCurrentPages();
        if(pages.length > 1){
            //上一个页面实例对象
            var prePage = pages[pages.length - 2];
            //关键在这里
            prePage.changeData(e.detail.value)
        }
    }
})

这样就可以实现数据传递给上一个页面,要注意页面A必须使用wx.navigateTo跳转到页面B,不能使用wx.redirectTo,这样会关闭上一个页面,导致页面B无法获取上一页Page实例。

方法三 在app.js中设置全局变量,当前页赋值,上一页取之

方法为

globalData: {
    userInfo: null,
  }

注意:方法一,方法三,都需要重新刷新页面数据所走方法为:

/**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    
  },

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏啸天"s blog

微信内置浏览器自动跳转其它浏览器

3943
来自专栏HTML5学堂

2016.07 第4周 群问题分享

HTML+CSS CSS pixels与Device pixels有何区别? 2016.07.25~2016.07.29 核心概念 CSS pixels、Dev...

2885
来自专栏杨逸轩 ' sBlog

利用JS生成当前页面二维码,简单实用

2326
来自专栏ionic3+

【Appetite】ionic3实录(二)UI分析及总体配置

首先,如果你是初学者,我强力建议你先看完我这篇文章: 【开发指南】(四)Ionic3快速上手并了解这些

1043
来自专栏Java开发

WebStorm 代码提示快捷键

1.Ctrl+Shift+a调出面板 2.输入key map过滤出快捷键设计菜单 3.输入basic过滤出提示的快捷键 4.在过滤项上右键添加快捷键

1143
来自专栏河湾欢儿的专栏

BOM

BOM 浏览器对象模型 定义了js操作浏览器的属性和方法 open(页面地址的url,打开的方式) 第一个参数,如果为空,默认打开一个空白的页码 第二个...

1221
来自专栏谈补锅

html之file标签 --- 图片上传前预览 -- FileReader

记得以前做网站时,曾经需要实现一个图片上传到服务器前,先预览的功能。当时用html的<input type="file"/>标签一直实现不了,最后舍弃了这个标...

2312
来自专栏h5

支付宝小程序弹窗插件开发|仿微信/android/ios弹窗效果

支付宝小程序弹窗交互组件和微信小程序弹窗功能都差不多,对功能有比较多的限制,尤其想要实现丰富一些的弹窗场景就只能自己写组件实现了。

3191
来自专栏飞雪无情的博客

Ubuntu下使用搜狗拼音输入法

对于经常使用Ubuntu操作系统并且不会使用五笔输入法的屌丝来说,选择一种好的拼音输入法能让你事半功倍。在window下我们都知道搜狗的输入法比较好用,更有一些...

1163
来自专栏React Native开发圈

React Native 图片查看组件

npm i react-native-image-zoom-viewer--save

982

扫码关注云+社区