微信小程序中使用全局变量解决页面的传值问题

由于项目需要,最近便在做 一个类似于美团的餐饮平台的的微信微信小程序 ,项目有十几个页面,那么页面间的传值被经常用到。在小程序中页面间的传值主要有使用全局变量本地存储这两种方法,在这个项目中我采用的是全局变量的方法

项目中使用的地方

  1. 下图为用户下单页面,下单时要选择配送地址,点击配送地址后跳入选择地址页面。

    2.下图为用户选择地址页面,用户点击选择地址选项进行选择后再点击返回按钮回到用户下单页面

    3.此为用户选择地址后返回的下单页面。此时下单页面的“选择地址”变为了用户自己的地址,便已经是完成了页面间的传值

全局变量传值具体说明

1.全局变量的定义


在app.js中的appData下定义userAddress设其值为空用来存储用户的地址信息

App({/*** 当小程序初始化完成时,会触发 onLaunch(全局只触发一次)*/onLaunch: function () {},/*** 当小程序启动,或从后台进入前台显示,会触发 onShow*/onShow: function (options) {},/*** 当小程序从前台进入后台,会触发 onHide*/onHide: function () {},/*** 当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息*/onError: function (msg) {},appData:{userinfo:null,appstore_id:null,userAddress:null,}
})

2.用户选择地址页面内容

location.html
<image src="{{item.image}}" mode="widthFix" bindtap="toCleanOrder" data-index="{{item.index}}" data-id="{{item.id}}" data-name="{{item.name}}" data-tel="{{item.tel}}" data-sex="{{item.sex}}" data-address_detail="{{item.address_detail}}" data-addre="{{item.addre}}" data-image="{{item.image}}"data-address="{{item.address}}" data-frequent_address="{{item.frequent_address}}" /><view class="info"><view class='info_up'><text>{{item.name}}</text><text>{{item.sex}}</text><text> {{item.tel}}</text><text>{{item.frequent_address}}</text></view><text>地址:{{item.address}}{{item.address_detail}}</text></view>
location.js
 // 重新选择收获地址toCleanOrder: function(e) {var that = this;console.log(e);for (var i = 0; i < that.data.add_rece_address_list.length; i++) {if (i == e.currentTarget.dataset.index) {li[e.currentTarget.dataset.index].image = "../image/check.png"} else {li[i].image = "../image/uncheck.png"}}that.setData({add_rece_address_list: li})app.appData.userAddress = {address: e.currentTarget.dataset.address,address_detail: e.currentTarget.dataset.address_detail,frequent_address: e.currentTarget.dataset.frequent_address,index: e.currentTarget.dataset.index,name: e.currentTarget.dataset.name,sex: e.currentTarget.dataset.sex,tel: e.currentTarget.dataset.tel,};},

在此页面中将后台传过来的地址信息定义到赋值给address、 address_detail、frequent_address、 index、name、sex、tel、
再把这些数据封装到app.appData.userAddress里面供另一个页面使用

3.用户下单页面选择地址块内容

payed.html
      <view class='adress' bindtap='adressClick'><image src="../../image/map2.png"></image><view wx:if="{{select_address==false}}">选择地址</view> <view wx:if="{{select_address==true}}"><view>{{payed_address}}{{payed_address_detail}}</view><view>{{payed_name}}-{{payed_sex}}-{{payed_tel}}</view></view></view><view class="launch" style="border:none"><image src="../../image/map2.png"></image><view>立即送出</view> </view>
payed.js
  /*** 页面的初始数据*/data: {isShow: true,currentTab: 0,select_address:null,payed_address:null,payed_address_detail:null,payed_name:null,payed_sex:null,payed_tel:null ,},/** 生命周期函数--监听页面显示*/onShow: function() {if (app.appData.userAddress == null) {this.setData({ select_address: false })} else {this.setData({select_address: true,payed_address: app.appData.userAddress.address,payed_address_detail: app.appData.userAddress.address_detail,payed_name: app.appData.userAddress.name,payed_sex: app.appData.userAddress.sex,payed_tel: app.appData.userAddress.tel,})}},/**地址点击函数*/adressClick: function(e) {wx.navigateTo({url: '../../location/location',})}

在此页面中将上个页面封装到app.appData.userAddress中里面的值赋给此页面定义的 payed_address,payed_address_detail,payed_name,payed_sex, payed_tel变完成了页面间的数值传递。

微信小程序中使用全局变量解决页面的传值问题相关推荐

  1. 在微信小程序中怎么让一个页面的信息传递到另一个页面

    首先需要在前台搭建好需要展示的那个页面. <!--pages/login/login.wxml--> <view class='nav'>输入个人信息</view> ...

  2. 如何将两个微信小程序合并_微信小程序--如何在两个页面之间传值

    先看一下本周的部分的设计图 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 页面设计并不太复杂,主要是产品类型那块点击的样式,其余的都不太复杂,没啥好说的. 这次主要是想记录一下不同页面下 ...

  3. 微信小程序页面生成html,微信小程序教程系列之新建页面(4)

    例如在web的开发中,新建一个页面只需要新建一个html文件即可. 但是到在微信小程序中,新建一个页面也不只是新建一个wxml文件,那么该如何做呢?下面我们一起来学习 新建一个页面的步骤: 1> ...

  4. 微信小程序中全局变量userInfo在其它页面不可用(wx.getUserInfo为异步获取信息)

    app.js中获取用户的openid和userinfo,并存储为全局变量,当在index中调用getApp().globalData.userInfo时却返回为空值: getUserInfo: fun ...

  5. 微信小程序app.js中的全局变量globalData改变,如何通知其它页面界面显示改变,小程序中如何在其他页面中监听到globalData中值的变化

    微信小程序app.js中的全局变量globalData改变,如何通知其它页面界面显示改变,小程序中如何在其他页面中监听到globalData中值的变化 在小程序中,我们一般在app.js的onLaun ...

  6. 教你解决Taro微信小程序中使用Echarts体积过大的问题

    教你解决Taro微信小程序中使用Echarts体积过大的问题 背景 为什么选择Echarts? 单包超过2M,如何处理? 以为到此就结束了? 最后 背景 近期笔者在使用Taro进行微信小程序开发,当引 ...

  7. 开发微信小程序 中遇到的坑 及解决方法

    开发微信小程序 中遇到的坑 及解决方法 参考文章: (1)开发微信小程序 中遇到的坑 及解决方法 (2)https://www.cnblogs.com/feiye512/p/6070052.html ...

  8. 微信小程序中的页面文件和组件

    页面文件 页面构造器 JS文件 页面的JS文件,用于书写当前页面所需要的脚本代码以及生命周期函数. Page() : 注册了一个页面 接收一个对象,该对象用于配置当前页面所需内容. 该对象拥有的属性: ...

  9. 微信小程序中的html路径,新媒体运营:如何提取微信小程序路径到指定页面

    目前微信小程序的功能已经非常的完善,可能平时我们都没有留意到.现在很多的app都有小程序版本,在微信端使用及推广都很便捷. 新媒体运营的同学们可能会发现一个问题,就是怎么才能直接到达小程序的一个指定页 ...

最新文章

  1. 普通java项目配置mybatis是总是显示数据库驱动找不到
  2. Java八大基本数据类型和对应的封装类型
  3. Asp.net发送邮件的两种方法小结
  4. GradSearchCv 自定义验证集
  5. 【转载保存】《Elasticsearch 核心技术与实战》Github代码保存
  6. java面试题总结(二)----java中级面试题 含答案
  7. Docker学习总结(7)——云端基于Docker的微服务与持续交付实践
  8. [译]其实闭包并不高深莫测
  9. 浅谈MySQL索引背后的数据结构及算法
  10. 9. Git flow
  11. JNA (Java 本地访问)理论概述与入门
  12. JAVA钓鱼游戏_java如何实现纸牌游戏之小猫钓鱼算法
  13. 软件性能优化之内存优化
  14. 河海大学计算机专业戴慧凤,特色宿舍 - 河海大学学生工作处.doc
  15. 建模与仿真matlab论文,matlab+fluent等温容器建模与仿真研究
  16. oracle里面的分区索引,oracle patition 分区和索引
  17. 微信小程序播放视频 禁止快进
  18. 网络七层协议OSI(Open System Interconnection)
  19. 基于OpenCV的实时车道线分割&车道保持系统(源码&教程)
  20. image 微信小程序flex_微信小程序入门教程之二:页面样式

热门文章

  1. 成都百知教育:做Shopee店铺没有方向,这3大层级必须理清!
  2. 华为云开发者官网首页焕新升级,赋能开发者云上成长
  3. 怎么将png图片缩小?教你在线压缩png图片的方法
  4. 黑马程序员Java零基础视频教程(2022最新Java)B站视频学习笔记-Day15-阶段项目(拼图小游戏)(上篇)
  5. win10定时关机怎么设置
  6. 笔记本简单使用eNSP的云连接外网
  7. 计算机一级excel中模拟运算,2017年计算机一级《MS Office》操作试题及答案
  8. 攻防实战 | 芙蓉区网络安全技能大比武暨网络安全应急攻防演练圆满结束!
  9. Discuz! Q 1.0来了!
  10. 与思科交换机三层链路聚合连接 ❀ 飞塔 (Fortinet) 防火墙