在开发中,我们难免会遇到一些问题,又无法从API中找到解决办法,其实还是一些原理不太理解。
问题1:wx.navigateTo无法跳转
原因:(1)跳转的页面在app.json文件未注册。
(2)跳转链接的目录出错,目录可用相对定位也可以用绝对定位,但是两个不要弄混。
(3)跳转到的页面属于tabBar中的页面,wx.navigateTo/wx.redirectTo
只能用在非tabBar页面的跳转。要跳转到tabBar页面,需要使用wx.switchTab
问题2:事件传参问题
在事件调用和页面跳转中,我们很多时候都需要传递参数,这种传参与两种,一种是事件调用的参数,一个是页面跳转时链接中的参数。
1、事件的参数
1)事件之间相互调用的参数与js中相同,在调用事件的时候放入参数即可。
2)点击或者触摸等触发的事件中的参数,因为在微信小程序中我们没有dom选择器的感念,也无法获取当前节点的相关信息,但是我们可以在wxml中定义data-xxx来定义需要传递的参数,这些参数我们在事件中,我们可以用e.currentTarget.dataset.xxx来获取我们的参数。
2、页面跳转的参数
我们实现页面跳转有两种方式,一种是在js中用wx.nacigateTo函数,或者在wxml中用<navigator></navigator>标签中加上跳转url来实现跳转。在这两种跳转中,我们可以在url后面加上参数实现传参。解析这个参数的函数如下:
onLoad: function (options) {
console.log(options); //options就是所传参数
}
问题3:引用第三方库
微信小程序可以引用第三方库,但是因为微信小程序的页面是基于xml的,所有没有dom的概念,因此微信小程序是不支持带有window、dom相关操作的第三方是不支持的,比如jquery。
1、微信引用第三方库可以用require的方式引入,引用的时候加上路径。这里的路径是相对路径,因为require暂时不支持绝对路径