小程序 第一个页面传递数据给第二个页面展示后如何再获取第二个页面的数据并传输给第三个页面

小程序 第一个页面传递数据给第二个页面展示后如何再获取第二个页面的数据并传输给第三个页面,第1张

1、设置id的方法标识跳转后传递的参数值;

2、通过使用data - xxxx 的方法来标识要传递的值 微信小程序设置id的方法标识来传值在要跳转的item处,设置一个id并给当前的id赋值上对应的key值,比如一部**的id(后面带着id去下一个页面查询,详细信息)如:

后我们在js的bindtap的响应事件中获取,并传递到下一个界面中;

获取到id传的值

通过ecurrentTargetid;获取设置的id值,并通过设置全局对象的方式来传递数值,

获取全局对象 var app=getApp(); //设置全局的请求访问传递的参数 apprequestDetailid=id;

提示:其实我们也可以在,wxml中查看到我们设置的每一个item的id值

通过使用data - xxxx 的方法标识来传值通过使用data - xxxx 的方法标识来传值,xxxx可以自定义取名 比如data-key等等都可以。

如何获取data-xxxx传递的值

在js的bindtap的响应事件中:

通过数据解析一层层找到数据,var id=etargetdatasetid(根据你的data-id的取名)

微信小程序如何跨页面获取值

依据上面的方式设置要传递的值,页面跳转后,我们就需要在下一个页面拿到传递的数据(这个数据在传递前,就已经被设置成全局变量)

在跳转后的js页面,接收传递过来的数据detailjs

同样通过全局额方式取值出来,(即和appjs中取某个变量的值是一样的)

var movieid=getApp()MovieDetailid;

consolelog(movieid);

到此为止,我们数值传递并接收成功,后面就可以根据我们接收的参数,进行进一步的 *** 作了。

1、传递参数为对象格式

若参数为对象则需先使用 JSONstringify()进行转换 , 接收后使用JSONparse()转为对象

但这样传参有一个问题,当对象数据长度过大时会报错,因为url传参时程序把过长的那段数据给截取掉了,导致数据转换回来时格式不对而报错。

2、传递参数中含有 = &等特殊字符

若传递参数中含有=,,&等特殊字符,无法正常传递参数,则需要进行编码解码。

解决:

这时可以再添加另一个API:encodeURIComponent(obj) 和 decodeURIComponent(optionsobj),在encodeURIComponent之前要用JSONstringify()先转换数据,decodeURIComponent之后再用JSONparse()转换回来。

encodeURIComponent(JSONstringify(obj)) 为跳转url时的转换方法。

JSONparse(decodeURIComponent(optionsobj)) 为接收参数页面的转换方法。

例如:

先上一段官方文档

文档说绝大多数初始化工作都在 attached 生命周期进行,但是小程序组件数据分为组件的内部数据 data: {} 和从页面传递过来的 properties: {} 。但是有个问题是在组件的 attached 中无法拿到使用组件的页面中setData的值。

给组件传递myString

组件接受myString

所以可以看出在组件里 mySrting 在 created 取的是组件的默认值, attached 取的是页面里 data 的初始数据, ready 取的才是页面 setData 之后的值。具体原理应该要研究下组件的生命周期函数的源码了,可能是在组件 attached 之后页面才 onLoad 。反正直接在组件里使用 mySrting 就不会有这些问题,但如果想用页面 setData 后的 myString 来对组件的数据初始化,就只能放在组件的 ready 里而不能放在 attached 里、

打开开发者工具,在项目的pages文件夹下新建mypage文件夹,并在文件夹内新建mypage,在appjson中将mypage设为第一页面

在mypagewxml中写代码如下:

<text>pages/mypage/mypagewxml</text>

<button open-type='share'>分享</button>

做完第二步就已经实现了转发,默认title为当前小程序名称,path为当前页面的路径,imageUrl为当前页面的截图,如下图所示

4

为了实现更好的展示,可以再mypagejs中分享函数设置title及path,代码如下:

onShareAppMessage: function (res) {

if (resfrom === 'button') {

}

return {

title: "真好",

path: 'pages/mypage/mypage'

}

}

5

编译代码,点击分享按钮,查看效果如下图所示,有了设置的title

6

如果传递的路径带参数需要在path中添加

/

onShareAppMessage: function (res) {

if (resfrom === 'button') {

}

return {

title: "真好",

path: 'pages/mypage/mypagevar='+data

}

}

7

当然要在接收的页面onload函数的options中获取参数

onLoad: function (options) {

optionsdata

},

END

经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。

作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。

以上就是关于小程序 第一个页面传递数据给第二个页面展示后如何再获取第二个页面的数据并传输给第三个页面全部的内容,包括:小程序 第一个页面传递数据给第二个页面展示后如何再获取第二个页面的数据并传输给第三个页面、微信小程序页面跳转url传参,对象、数据过长、特殊字符问题、小程序组件里的数据传递等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10120877.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存