微信小程序间使用navigator跳转传值问题实例分析


Posted in Javascript onMarch 27, 2020

本文实例讲述了微信小程序间使用navigator跳转传值问题。分享给大家供大家参考,具体如下:

前言

这次讲一下我用 navigator 组件实现从一个小程序跳转到另一个小程序的过程中遇到的问题。

extra-data 如何构建

由于上网查资料得知 extra-data 是 json 格式。那么就不能在 HTML 属性中直接写。

那么剩下只有在 JS 里构建了。

首先在 HTML 里,绑定 extra-data的值到 extra 变量

<navigator class="navi" url="" target="miniProgram" app-id="wxxxxxxxxxxxxxxx" extra-data="{{ extra }}" version="{{ version }}" path="/pages/index/index">
<image src="{{img}}" mode="scaleToFill" class="img">
</image>
</navigator>

然后在 JS 里构建这个变量

Page({
 data: {
  extra: {
   "color": '', // 动态获取
   "partnerUsername": '99',
  },
 },
})

这里有个问题,就是如果 extra 里的 color 等变量是动态从远程 api 获取到的,那么应该怎么赋值。

我凭直觉写 extra.color = 'xx' ,尝试了下不行。查阅资料发现,应该这么写:

wx.request({
  url: url,
  data: {
    color: '',
  },
  header: {
    'content-type': 'application/json'
  },
  success: function (res) {
    that.setData({
      "extra.color": app.globalData.color,
    });
  }
});

还可以在 path 属性值后面跟参数来向目标小程序传值

通过搜索发现[这篇文章](https://cloud.tencent.com/developer/article/1157552),我试了他给出的解决方案,是可行的,现在记录在下面:

<navigator class="navi" url="" target="miniProgram" app-id="wxxxxxxxxxxxx" version="{{ version }}" path="zh_tcwq/pages/index/index?color={{ colorSet }}&partner={{ partner }}">
<image src="{{src}}" mode="scaleToFill" class="img">
</image>
</navigator>
// 源小程序
this.setData({
  colorSet: app.globalData.color,
  partner: app.globalData.partnerUsername,
});
// 目标小程序
onShow: function (options) {
  console.log(options.query.color + options.query.partner);
}

奇怪的问题(可能是bug):打开调试时,目标小程序能获取到动态的 extra-data,关闭后无法获取到

原因是我没配合法域名,所以动态从 api 获取的数据获取不到。

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
Nov 21 Javascript
JS显示表格内指定行html代码的方法
Mar 31 Javascript
基于jquery实现省市联动特效
Dec 17 Javascript
jQuery实现多级联动下拉列表查询框
Jan 18 Javascript
jquery组件WebUploader文件上传用法详解
Oct 23 Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
Apr 13 jQuery
详解Vue 方法与事件处理器
Jun 20 Javascript
Vee-Validate的使用方法详解
Sep 22 Javascript
使用validate.js实现表单数据提交前的验证方法
Sep 04 Javascript
JS对象和字符串之间互换操作实例分析
Feb 02 Javascript
vue组件化中slot的基本使用方法
May 01 Javascript
详解vue中在父组件点击按钮触发子组件的事件
Nov 13 Javascript
vue跳转页面的几种方法(推荐)
Mar 26 #Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
Mar 26 #Javascript
JavaScript定时器使用方法详解
Mar 26 #Javascript
js实现时钟定时器
Mar 26 #Javascript
如何解决vue在ios微信&quot;复制链接&quot;功能问题
Mar 26 #Javascript
原生JS实现留言板
Mar 26 #Javascript
vue在线动态切换主题色方案
Mar 26 #Javascript
You might like
PHP array 的加法操作代码
2010/07/24 PHP
PHPExcel读取Excel文件的实现代码
2011/12/06 PHP
解析php时间戳与日期的转换
2013/06/06 PHP
实例解析php的数据类型
2018/10/24 PHP
javascript中String类的subString()方法和slice()方法
2011/05/24 Javascript
xml转json的js代码
2012/08/28 Javascript
Javascript中的delete介绍
2012/09/02 Javascript
jQuery ui插件的使用方法代码实例
2013/05/08 Javascript
jQuery中的编程范式详解
2014/12/15 Javascript
jQuery子属性过滤选择器用法分析
2015/02/10 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
jQuery获取单击节点对象的方法
2016/06/02 Javascript
jquery延迟对象解析
2016/10/26 Javascript
使用mock.js随机数据和使用express输出json接口的实现方法
2018/01/07 Javascript
jQuery选择器之层次选择器用法实例分析
2019/02/19 jQuery
Vue.js中使用Vuex实现组件数据共享案例
2020/07/31 Javascript
[06:09]辉夜杯主赛事开幕式
2015/12/25 DOTA
[00:32]2018DOTA2亚洲邀请赛Mineski出场
2018/04/04 DOTA
[03:10]超级美酒第四天 fy拉比克秀 大合集
2018/06/05 DOTA
python实现登陆知乎获得个人收藏并保存为word文件
2015/03/16 Python
python 中if else 语句的作用及示例代码
2018/03/05 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
2018/06/04 Python
Python 中的lambda函数介绍
2018/10/10 Python
浅谈Pandas:Series和DataFrame间的算术元素
2018/12/22 Python
python归并排序算法过程实例讲解
2020/11/04 Python
python 6种方法实现单例模式
2020/12/15 Python
pyspark对Mysql数据库进行读写的实现
2020/12/30 Python
英国户外服装品牌:Craghoppers
2019/04/25 全球购物
ABOUT YOU罗马尼亚:超过600个时尚品牌
2019/09/19 全球购物
游戏商店:Eneba
2020/04/25 全球购物
思想品德课教学反思
2014/02/10 职场文书
小学庆六一活动总结
2014/08/28 职场文书
运动会表扬稿
2015/01/16 职场文书
仓库统计员岗位职责
2015/04/14 职场文书
中国古代史学名著《战国策》概述
2019/08/09 职场文书
判断Python中的Nonetype类型
2021/05/25 Python