首页课件丨教程安装教程小程序传输参数显示object类型?EventChannel页面通讯如何处理

小程序传输参数显示object类型?EventChannel页面通讯如何处理

若用混乱的心看待世界,世界就会变成乱码很多人总想改变世界,从没想过改变自己

小程序传输参数显示object类型?EventChannel页面通讯如何处理 1

原因

小程序数据来自本地json,点击文章列表之后需要给传输多个参数给文章详情页

title: "小程序样子描述", date: "2020年10月03日", cover: "https://cdn.frbkw.com/wp-center/uploads/2022/03/1646562812-20200306.jpg", model: "IOS", wechat: "8.0.22", essay: "https://banner.frbkw.com", images: [ {img: "https://cdn.frbkw.com/wp-center/uploads/2022/04/1650462139-202201202131.jpg"}, {img: "https://cdn.frbkw.com/wp-center/uploads/2022/04/1651050995-202204271717.jpg"} ]

思路

实现目的的效果有很多种,例如最简单的首页文章列表点击传输index索引值。文章界面再次请求json数据找到对应的index索引,但这不是一个有效的方式

直接使用页面路由在url中添加对应的参数

 // 列表点击 listsTap(e){ console.log(e.currentTarget.dataset.info,'文章点击数据') wx.navigateTo({ url: '../details/details?info=' + e.currentTarget.dataset.info, }) }

但是文章详情打开接收数据则显示object

小程序传输参数显示object类型?EventChannel页面通讯如何处理 2

如何传输

1.EventChannel通讯

 EventChannel.emit(string eventName, any args)

我们需要给EventChannel添加2个参数,第一个是通讯名称可以随意,第二个是传输的数据

 // 列表点击 listsTap(e){ console.log(e.currentTarget.dataset.info,'文章点击数据') wx.navigateTo({ url: '../details/details', success: function(res) { // 通过 eventChannel 向被打开页面传送数据 res.eventChannel.emit('yinfengrui', { data: e.currentTarget.dataset.info }) } }) }

 文章详情页先获取事件对象即可得到数据

 onLoad(options) { console.log(options) // 接收eventChannel通讯数据 this.acceptData(); }, acceptData() { //获取事件对象 const eventChannel = this.getOpenerEventChannel() eventChannel.on('yinfengrui', (res)=> { console.log(res.data, '列表传输数据') this.setData({ details:res.data }) }) }

该方式会有一个问题,在使用编译模式下EventChannel通讯他不算启动参数,没有办法单独编译文章详情页面调试(报错:EventChannel函数)

小程序传输参数显示object类型?EventChannel页面通讯如何处理 3
小程序传输参数显示object类型?EventChannel页面通讯如何处理 4

2.JSON数据解析

首页使用JSON.stringify序列化成 一个JSON 字符串的值

 // 列表点击 listsTap(e){ console.log(e.currentTarget.dataset.info,'文章点击数据') var jsondata = JSON.stringify(e.currentTarget.dataset.info) wx.navigateTo({ url: '../details/details?info=' + jsondata }) }

文章详情页面JSON.parse格式字符串转换为js对象

 onLoad(options) { var datas = JSON.parse(options.info) console.log(datas) },

这样操作在小程序编译模式下会有启动参数,因为转义符的情况下也不是很友好

总结

学习成长+1

头发数量-0

感悟

EventChannel通讯是学习的一个小知识点,只有不断学习才能在生活中发现阳光的灼热

声明: 1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:ceo@zunw.cn,我们将第一时间处理! 2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持 3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读网站声明。

给TA赏金
共{{data.count}}人
人已赏金
安装教程

星宿UI文档手册

2022-11-13 17:26:33

安装教程

如何控制微信小程序在某个时间内访问需要激励视频广告

2022-11-13 17:26:43

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
MySSL 安全签章