• 微信小程序页面间传值问题[getCurrentPages()] 及 小程序组件中的[onload方法]


    十年河东,十年河西,莫欺少年穷

    学无止境,精益求精

    小程序组件中没用OnLoad 事件,我们可以通过 lifetimes 事件来代替OnLoad事件,lifetimes 是在进入小程序组件Dom节点时触发。

    代码如下

    properties: {
        title: {
          type: String,
          value: ""
        }
      },
    
      /**
       * 组件的初始数据
       */
      data: {
        ec: {
          onInit: initChart
        },
      },
      lifetimes: {
        attached: function () {
          // 在组件实例进入页面节点树时执行
          this.GetData();
        }
      },
      /**
       * 组件的方法列表
       */
      methods: {
        GetData() {

    言归正传

    本文提供三种方式解决页面传值问题

    1、通过本地存储 wx.setStorageSync 来解决该问题,该种方式不推荐,不作演示

    2、通过参数的方式进行传递,并在目标页面中的OnLoad 方法中接收,此方式简单,不作演示。

    3、通过获取当前页面栈的方式来实现

    假设,页面A跳转至页面B,在B页面,我们能否直接修改A页面的参数呢?使用场景,跳转页作为查询项

    我的查询页面如下:

    <!--template/selectPinpai/selectPinpai.wxml-->
    <view class="tjBox" bindtap="tjBoxClick" data-SystemID="2" data-GroupID="1011">
      <view>
        钻速换电
      </view>
      <view class="tjtext">品牌商</view>
    </view>
    
    <view class="tjBox" bindtap="tjBoxClick"  data-SystemID="2" data-GroupID="1015">
      <view>
        广州保士骑
      </view>
      <view class="tjtext">经销商</view>
    </view>
    
    <view class="tjBox" bindtap="tjBoxClick"  data-SystemID="2" data-GroupID="1016">
      <view>
        政睿达租赁
      </view>
      <view class="tjtext">经销商</view>
    </view>
    
    <view class="tjBox" bindtap="tjBoxClick"  data-SystemID="2" data-GroupID="1017">
      <view>
        政睿达租赁(南村片区)
      </view>
      <view class="tjtext">代理商</view>
    </view>
    
    <view style="height: 24rpx; margin-bottom:12rpx;"></view>

     当点击上图箭头指向的某个选项时,修改上一个页面的参数【该方式最多支持10级页面层次】,代码如下:

      /**
       * 生命周期函数--监听页面加载
       */
      onLoad: function (options) {
         
          
      },
      tjBoxClick(e) {
        let that = this;
        var groupid = e.currentTarget.dataset.groupid;
        var systemid = e.currentTarget.dataset.systemid;
        var pages = getCurrentPages();
        var currPage = pages[pages.length - 1];
        var prePage = pages[pages.length - 2];
        // console.log(prePage)
        // console.log(groupid)
        prePage.setData({
          SearchGroupData: {
            groupid: groupid,
            systemid: systemid
          },
        })
        wx.navigateBack({
          delta: 1
        })
      }

    注意,该种方式跳转到主页面时,请使用: wx.navigateBack 的方式

    注意:在主页面,或使用到该查询页的页面,要定义相同名称,相同属性的变量

     至此,结束。

    #@天才卧龙的博客

  • 相关阅读:
    iPerf 笔记
    Monkey相关参数 笔记
    adb相关指令 笔记
    Linux常用命令 笔记
    eclipse配置android开发环境并搭建第一个helloWord工程
    python + eclipse + pydev 安装、配置
    print带参数格式
    JS获取按下的键盘字符
    Mysql 创建用户并对其赋予操作权限
    扩展内置对象
  • 原文地址:https://www.cnblogs.com/chenwolong/p/15582100.html
Copyright © 2020-2023  润新知