zoukankan      html  css  js  c++  java
  • 微信小程序之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来调用我们之前封装好的方法就可以了  
     
    : 经过简单的一处理 就会使我们的代码简洁简单很多 不会那么冗长了  页面逻辑实现起来更容易了 
  • 相关阅读:
    在win7 64位上安装VS2015的问题汇总
    关于C#类的深拷贝的问题
    线程、进程
    c#日志 log4net
    C#常识
    Tribon数据抽取的一些心得
    Java Web相关课程学习笔记
    过滤器、监听器、拦截器的区别
    SHH架构中几个配置文件解释 applicationContext.xml web.xml struts.xml
    vue关于动态增加路由页面
  • 原文地址:https://www.cnblogs.com/Aaron1Tall/p/9017984.html
Copyright © 2011-2022 走看看