轻源码

  • QingYuanMa.com
  • 全球最大的互联网技术和资源下载平台
搜索
一起源码网 门户 微信小程序 查看主题

页面之间的参数传递,编辑完当前页面返回数据到上一页更新 ... ...

发布者: leohsu | 发布时间: 2018-6-2 18:06| 查看数: 3346| 评论数: 1|帖子模式

目标页面接收参数(js页面,通常会定义成页面局部变量来存储,以便其它地方可直接调用) 如下: 

接口wx.redirectTo、wx.navigateTo 带参数

在JS页面中执行跳转页面中直接加入参数 如: 

目标页面同样是在onload事件中的参数option可获得所传递的参数值 

二:模板使用

主要分为,先定义模板,后引用模板

注:模板是无法默认对应CSS样式的,如要配对使用CSS样式,有三种方法

a.在全局样式中定义,即app.wxss

b.在业务页面对应的.wxss样式定义

c.先在模板中定义对应的CSS样式,再在业务页面的.wxss文件中import进去

1.定义模板 

2.引用模板

先引入import 模板路径

再使用 is=""

传入数据 data="" 

3.定义模板CSS样式,业务页面引用 

明细: 

附加代码段:

WXSS:

  1. @import "../../../template/wideRowDetail/wideRowDetail.wxss";
  2. page{
  3. background-color: #ffffff;
  4. color: #000000;
  5. }

WXML:

  1. <import src="../../../template/wideRowDetail/wideRowDetail.wxml" />
  2. <template is="wideRowDetail" data="{{dataitem}}"></template>

JS :

  1. var testData=require('../../../utils/testData');
  2. Page({
  3. data:{
  4. dataitem:testData.teadata
  5. },
  6. onLoad:function(options){
  7. // 生命周期函数--监听页面加载
  8. this.setData({
  9. dataitem:{
  10. id:2,
  11. description:"小罐茶 小罐茶组合装 茶叶礼品礼盒装八位大师八款作品",
  12. price:100,
  13. qty:50,
  14. imgdata:[
  15. {"imgurl":""},
  16. {"imgurl":""},
  17. {"imgurl":""}
  18. ],
  19. imgDetail:[
  20. {"imgurl":""},
  21. {"imgurl":""},
  22. {"imgurl":""}
  23. ]
  24. }
  25. });
  26. }

三:编辑完当前页面返回数据到上一页更新

总共有三种方法

利用本地缓存,先存储再取出 
利用全局变量,先更新再取出 
利用页面栈更新,直接通过调用方法更新

假设有页面A,和页面B,页面A是通过wx.navigateTo跳转到页面B的(如果是使用wx.redirectTo,则第三种方法不适用)

本地缓存,在页面B中直接写入本地缓存,返回到页面A后再直接取出本地缓存数据

  1. 页面Bwx.setStorageSync('key',{data:allData});
  2. 页面Avar data = wx.getStorageSync('key');

全局变量,首先在App.js定义一个全局变量(g_var),在页面B中直接更新这个全局变量(g_var),返回到页面A后再直接取出此变量(g_var)更新。

App.js:

  1. globalData:{
  2. user:''
  3. }
  1. 页面Bapp.globalData.user='hello!';
  2. 页面Avar data=app.globalData.user;

页面栈,首先在页面A定义一个方法,然后在页面B中通过getCurrentPages 获取页面A的实例,再调用其方法直接进行更新数据。(注意页面A必须使用wx.navigateTo跳转到页面B,不能使用wx.redirectTo,这样会关闭上一个页面,导致页面B无法获取上一页Page实例。)

页面A:

  1. Page({
  2. data: {
  3. nickname: ''
  4. },
  5. setData: function(name){
  6. this.setData({
  7. nickname: name
  8. })
  9. }
  10. })

页面B:

  1. Page({
  2. edtinputname: function (e) {
  3. var pagelist = getCurrentPages;
  4. if(pagelist.length > 1){
  5. //获取上一个页面实例对象
  6. var prePage = pagelist[pagelist.length - 2];
  7. //直接更新上一页的数据
  8. prePage.setData(e.detail.value)
  9. }
  10. }
  11. })

getCurrentPages 函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。在当前页面拿到上一个页面的实例对象,然后调用该对象的方法完成数据传递。

最新评论

野食部队 发表于 2022-6-21 18:16
找到源代码如何下载音乐

轻源码让程序更轻更快

QingYuanMa.com

工作时间 周一至周六 8:00-17:30

侵权处理

客服QQ点击咨询

关注抖音号

定期抽VIP

Copyright © 2016-2021 https://www.171739.xyz/ 滇ICP备13200218号

快速回复 返回顶部 返回列表