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来调用我们之前封装好的方法就可以了  
     
    : 经过简单的一处理 就会使我们的代码简洁简单很多 不会那么冗长了  页面逻辑实现起来更容易了 
  • 相关阅读:
    内存泄漏 Memory Leaks 内存优化 MD
    Handler Thread 内部类引起内存泄露分析
    为什么不取消注册BroadcastReceiver会导致内存泄漏
    WebChromeClient 简介 API 案例
    WebViewClient 简介 API 案例
    java.net.URI 简介 文档 API
    android.net.Uri 简介 API
    RV 多样式 MultiType 聊天界面 消息类型 MD
    JS函数声明与定义,作用域,函数声明与表达式的区别
    CSS中table tr:nth-child(even)改变tr背景颜色: IE7,8无效
  • 原文地址:https://www.cnblogs.com/Aaron1Tall/p/9017984.html
Copyright © 2011-2022 走看看