小程序问题处理

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值