微信小程序之wx.navigateback往回携带参数

在微信小程序开发的过程当中  经常碰到一些带逻辑的一些事情 就比如 新增地址 修改地址  筛选用户条件等页面的时候  我们也可以用wx.navigateTo来跳转实现 但其中有很多问题

1.微信的十层跳转  当你用navigateTo跳转的时候跳转十次的时候就跳不动了

2.参数的传递 我们在用navigateTo跳转的时候通常带着参数来跳  试想一下 如果我们一种这么跳 那么携带的参数越来越多 这不是开发的一个好事情

所以在以上的问题上我们可以用navigateback来实现  既仅携带本次跳转用的参数即可  并且速度会很快 因为不需要再次加载onLoad函数  写起来也会方便很多 话不多说 上代码

一、假如我们此时在筛选用户条件的页面上    经过我们一系列实现后准备跳回上一个页面的时候

let pages = getCurrentPages();//当前页面    (pages就是获取的当前页面的JS里面所有pages的信息)

let prevPage = pages[pages.length - 2];//上一页面(prevPage 就是获取的上一个页面的JS里面所有pages的信息)

prevPage.setData({

state:1,

searchContent: this.data.searchContent,

regionName: this.data.regionName,

industryId: this.data.classifySelc,

districtId: this.data.selectArea,

businessDistrictId: this.data.selectTrading,

restaurantCategoryId: this.data.selectShop

})  //以上就是我回到上个页面所要携带的所有参数  如果我们用navigateTo来跳转的话 试想一下 那个跳转地址会写多长

wx.navigateBack({

delta: 1,

}) //回到上一个页面  仅适用于用navigateTo跳转过来的页面

二、在我们的主页面上 即上一个页面 这么几个步骤

1.在页面的data里面设置接收上个页面传过来的参数的变量

data:{

  state:0

} //这个state就是接收的上个页面传过来的state:1这个参数  此时你的页面data里面的state的参数就变成了1

2.

let pages = getCurrentPages();

let currPage = pages[pages.length-1]; //获取当前页面pages里的所有信息   可以console一下看一下此时的数据已经变成了你传回来的数据了

3.那么我们怎么用这个数据  切记在onshow函数里面调用data里面的数据就可以了  因为我们是navigateback返回上一个页面 就相当于返回  此时我们页面不会再次执行onLoad函数

所以我们需要用onshow来调用我们之前封装好的方法就可以了

: 经过简单的一处理 就会使我们的代码简洁简单很多 不会那么冗长了  页面逻辑实现起来更容易了

原文地址:https://www.cnblogs.com/Aaron1Tall/p/9017984.html

时间: 2024-10-09 23:56:19

微信小程序之wx.navigateback往回携带参数的相关文章

微信 小程序 drawImage wx.canvasToTempFilePath wx.saveFile 获取设备宽高 尺寸问题

以下问题测试环境为微信开发者0.10.102800,手机端iphone6,如有不对敬谢指出. 根据我的测试,context.drawImage,在开发者工具中并不能画出来,只有预览到手机中显示. wx.canvasToTempFilePath wx.saveFile 官方文档中只有一行,真是坑爹啊,原来 wx.canvasToTempFilePath参数为一个对象包括canvasID,success,fail,complete,和wx.saveFile差不多: wx.canvasToTempFi

【微信小程序】 wx:if 与 hidden(隐藏元素)区别

wx:if 与 hidden 都可以控制微信小程序中元素的显示与否. 区别: wx:if 是遇 true 显示,hidden 是遇 false 显示. wx:if 在隐藏的时候不渲染,而 hidden 在隐藏时仍然渲染,只是不呈现. 所以如果频繁切换的话,用 wx:if 将会消耗更多资源,因为每次呈现的时候他都会渲染,每次隐藏的时候,他都会销毁. 如果切换并不频繁的话,用 wx:if 相对来说较好些,因为它会避免初始就一下渲染那么多. wxml: <view> <text>page

微信小程序:wx.request之post请求后端无法获取数据的问题

前言:小程序的开发中总是踩到各种坑,看文档也不知所云: 例如当我们在写微信小程序接口时,method请求方式有POST和GET两种,为了数据安全,我们会偏向于使用POST请求方式访问服务器端: 问题:当我们使用POST方式请求时,后端无法获取数据,但使用GET方式便可以获取数据?? 解决办法: 设置请求的 header: header: { "Content-Type": "application/x-www-form-urlencoded" }, 例如:

微信小程序之wx.requestPayment 发起微信支付

wx.requestPayment 发起微信支付 timeStamp 时间戳 nonceStr 随机字符串 package 统一下单接口返回的 prepay_id 参数值 signType 签名算法 paySign 支付签名 success 接口成功回调 fail 接口失败回调 complete 接口完成回调(成功,失败都执行) 1.先调用后台接口,生产基本数据 // 获取店铺信息 Api.BalancePay({ openid: openid, amount: amount, bid: bid

微信小程序之 wx.getUserInfo引导用户授权问题

首先,在page外定义一个函数用户判断是否为空对象 var isEmptyObject = function (e) { var temp; for (temp in e) return !1; return !0 } 然后,在page中的onload里面调用授权 onLoad: function () { var that = this; if (app.globalData.userInfo) { this.setData({ userInfo: app.globalData.userInf

微信小程序-wx:for 循环列表

获取了 N 条信息(具体有多少条不确定),如何在界面中动态呈现出来呢? .wxml 代码 <view wx:for="{{items}}" wx:for-index="index" wx:for-item="item">{{index+1}}.{{item.title}}</view> 核心代码就是 wx:for,对应一个数组. 而 wx:for-index 指明后面如果要用数组索引的话,           用什么名字,

微信小程序之wx.showmodal

1. . wx.showModal({ title: "2222步", content: currentCache ? "确定为自己城市添加步数吗" : "确定取消为自己城市添加步数吗?", showCancel: true, cancelText: "取消111", cancelColor: "#000", confirmText: "确定", confirmColor: "

微信小程序 之wx.getLocation()获取地理信息中的小坑

提到wx.getLocation()这个方法,大家都知道是获取地理信息的 今天用这个方法获取定位经纬度后传给后台取得附近markers标记集合, 在开发工具上都正常有标记出现 ,但是在手机测试时,死活没有显示 , 最后发现是在手机测试时,后台已经报参数不合法抛出错误通知了 原因是因为,在开发工具上获取经纬度只有小数点后5位,而我们传给后台接口的数据规定只有后6位, 这在开发工具上是正常可以请求成功,但是在手机上测试时,定位更加精确,例如"longitude":"121.534

微信小程序的wx.request请求方法,标准写法

wx.request({ url: 'https://127.0.0.1:8443/user/testRSA',//请求路径 data:{ column: output //请求数据 }, header:{ 'content-type':"application/json", //请求头 }, method:"POST", //请求方法 dataType:"json",//请求类型 success(data){ //请求成功的参数 console