redirectTo和navigateTo不能再跳转到带有tab选项卡的页面
小程序新增了一个接口wx.switchTab。这个接口是专门用来跳转到带有tabbar的页面
Page({
onTap: function (event) {
wx.switchTab({
url: "../posts/post"
});
}
})
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
注意switchTab只能跳转到带有tab的页面,不能跳转到不带tab的页面!跳转不带tab的页面还是需要使用redirect或者navigate!所以,如果如果你的post页面还没有加入tab选项卡,请依然使用redirect或者navigate!
Page的onLoad函数里不可以再直接对data变量赋值做数据绑定
用this.setData方法来做数据更新
Page({
data: {
},
onLoad: function () {
// this.data.postList = postsData.postList
this.setData({
postList:postsData.postList
});
},
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
wx.request 方法的Content-Type参数
最早的版本使用content-type:application/json
任意形式都可以用,只要不是空字符串和application/json
function http(url, callBack) {
wx.request({
url: url,
method: 'GET',
header: {
"Content-Type": "json"
},
success: function (res) {
callBack(res.data);
},
fail: function (error) {
console.log(error)
}
})
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
—2017年1月4日更新——————————————
关于input组件
在旧版本里,input的bindblur事件,不会响应模拟器中的回车事件。
但微信又偷偷的更改了这个规则,最新的122100版本中,bindblur可以响应回车事件了。
——————————17.1.4更新——————————————
122100版本为input事件新增了bindconfirm事件,不需要再使用别扭的bindchange或者是bindblur来作为键盘完成的触发事件,请使用bindconfirm。
脚本错误或者未正确调用Page()”的错误提示。
出现这个错误的原因通常是因为对应页面的js文件里,没有调用Page方法。即使js文件里没有任何代码,也需要在js里添加一个空的 Page({ })。注意Page的P要大写。
为什么会出现“Expecting ‘String,‘Number,‘NULL,‘True….’”’’的错误提示?
出现这个错误的原因在于对应页面的json文件没有加入{ }。即使json文件里没有任何内容,也需要加入一个{ },作为默认代码。json文件不允许出现注释代码,如果有注释的代码,同样会报这个错误。
出现“ Failed to load image http://2110932784.debug.open.weixin.qq.com/pages/posts/images/post/crab.png : the server responded with a status of 404 (HTTP/1.1 404 Not Found) From server 127.0.0.1”
(问题的提出和整理来自知乎ID:顽主)出现类似的这种错误,通常是由于图片的路径不对而引起的。外网的图片,我们这里不再说了,因为没有相对和绝对的路径概念,如果报错了就是你外网的图片url错了。我们说说本地的图片路径问题。请注意,如果图片路径被写在一个js文件A里,而B引用了这个js文件,那么图片的路径必须是相对于B的相对路径。所以,最好在公共的js文件里使用绝对路径。
还有一点,提醒大家,小程序对资源文件,比如图片是有缓存的,这个大家要注意。
为什么在真机预览时,会出现“缺少文件,错误信息:error:iconPath=…….file not found?”
在开发工具中->项目->预览时,有时候会报以上错误。错误的原因是因为,app.json的tabBar选项中,list下的iconPath出现了绝对路径 “ / ”,比如
"list": [{
"pagePath": "pages/movies/movies",
"iconPath": "/images/tab/dianying.png",
"selectedIconPath": "images/tab/dianying_hl.png",
"text": "电影"
}, {
"pagePath": "pages/setting/setting",
"iconPath": "/images/tab/set.png",
"selectedIconPath": "images/tab/set_hl.png",
"text": "设置"
}],
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
iconPath 以 “/ ”开头,就会出现以上错误。请使用相对路径,去掉 / 。
关于出现警告信息“ Now you can provide attr “wx:key” for a “wx:for” to improve performance“的问题。
首先,这只是一个警告信息,不是错误信息,不理他不会对程序运行有任何的影响。其次这是在112300版本中新增的内容。课程里没有去处理的原因在于,对于静态的只有5条数据的文章列表加入wx:key并没有任何的意义。wx:key用来对列表渲染的数据指定一个”主键”,以加快列表渲染的速度。以下是官方文档原话:如不提供 wx:key,会报一个 warning, 如果明确知道该列表是静态,或者不必关注其顺序,可以选择忽略。
如果你一定想去掉这个警告,可以在wx:for的组件属性里增加一个 wx:key=”unique”,unique请替换成数据绑定列表里的任意一个字段的字段名,比如文章列表数据中的字段“postId”,即wx:key=”postId”。不建议使用wx:key=”*this”。.
出现please do not register multiple Pages in undefined.js 错误。
这多半是在 app.js里添加了Page()。app.js是应用程序级别的不能用Page(),Page*()只能用于页面的js文件中。app.js请使用App()。
使用background-image真机上无法显示图片?
background-image如果url指向的是一个网络图片,则真机可以显示。但如果url指向的是本地图片,则在模拟器里显示正常,iOS上无法显示图片。建议使用image.
以上问题来自知乎专栏https://zhuanlan.zhihu.com/oldtimes?topic=%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F
更多学习资料
https://github.com/7insummer/orange-can
https://github.com/7insummer/orange-can-server