Uni-App 开发常见问题记录(持续更新

问题1

uni项目使用 HBuilder X(IDE版本号2.6.5.20200314)编译到支付宝小程序,报错”TypeError: Cannot read property 'call' of undefined “,具体错误信息截图如下:

可以看到上面绿框中一行,大概意思在创建 ”pages/user_modules/o2ohyorder“ 这个组件的时候发生错误了,没有更多的错误信息,只能一步一步注释这个组件中的代码,找出问题所在。

解决方案

可能性1:import了未使用的组件导致,删除该组件中未使用的组件即可

其他可能性暂未发现。

问题2

uni项目编译为各端小程序的时候,注意css中background-image:url('')不要使用本地图片,有的小程序不支持在样式文件中引入本地图片,将需要使用的图片上传至:webApp\c-static\images\wxminiImg  发包之后,使用域名访问。

可在common.less中定义变量 @img-domain,然后css样式中进行拼接  

background-image: url('@{img-domain}/wxminiImg/test.png')

问题3

uni中不支持独立分包!!!!!

问题4

关于uni-app中实现支付宝小程序授权登录获取用户信息,根据支付宝小程序官方提供的文档,授权登录可以调用my.getAuthCode,或者调用uni提供的uni.login,都会弹出授权窗口,授权成功获得authCode(注意支付宝原生和uni参数的区别)。

获取用户信息,uni.getUserInfo现在已经不支持支付宝小程序了(虽然官方文档还没更新过来),我们需要使用支付宝提供的获取会员信息API(传送门:小程序文档 - 支付宝文档中心),通过button组件唤起授权弹窗,划重点:

支付宝官方文档提供的写法是:

此写法通过uni编译到支付宝小程序会发现,授权成功或者失败的回调方法都没有执行。坑爹的uni,改成如下写法就好了:

问题5

又是支付宝小程序的问题。。。如果你的项目里界面编写使用了H5标签,<a>  <span>等等,编译到支付宝小程序上发现该标签上设置的点击事件失效了,不要惊讶,统统换成<div>或者<view>。(具体转到问题8)

问题6

编写样式代码的时候,尽量避免使用 :last-of-type  :nth-of-type()等,因为你不知道哪个平台的小程序不支持这些选择器。

问题7

还是支付宝小程序的问题。。。如果在编译支付宝小程序的时候,报如下错误:

错误的大概意思是,在props中定义的变量只能由父传给子,单向数据流,在子组件中不能直接操作这个变量。那么首先去子组件中检查一下是否对props中的变量进行了操作,我想你得到的答案应该是根本没有操作过,

那就不用在意这个报错了,uni的bug,或者支付宝的bug。如果你确实操作了props中的变量,那么请换种方式:可以在data中定义一个变量,将props中的变量作为初始值赋值给这个变量,然后操作data中的变量。

问题8

如果在项目开发中使用了H5标签写布局,那么要注意一点 span 标签在uni编译到支付宝小程序会变成label标签,这会导致一个问题原先在span标签定义的click事件会失效。a 标签经过uni会编译成 <navigator> 在IDE上调试的时候,你会发现会报如下错误:

在小程序中使用<navigator>跳转,需要设置url跳转页面,遇到这种情况,尝试直接去掉a标签,或者用<navigator>替换。

问题9

设置页面100%高度,一般会在App.vue 的<style>标签中设置 page{width: 100%; height: 100%;},目前在微信小程序和字节跳动小程序中是有效的,在支付宝小程序中会发现页面高度是由内容撑起来的。解决方案:使用条件编译,在支付宝小程序中设置 

page{widht: 100%; height: 100vh;}

问题10

项目的iconfont库是阿里巴巴图标库生成的链接,阿里巴巴生成的链接是没有带协议头的,我们在引用到项目中的时候注意要加上  https  协议头, 防止某个平台图标显示不出来。此问题uni-app官方也有做解释:传送门:uni-app官网

问题11

组件标签中如果定义了class选择器,切记定义class的值,不要只写一个class,HBuilderX 2.7.5版本中,标签中class没有值,编译运行会报错  :class 不支持true语法

  • 11
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值