钉钉小程序的那些坑(持续更新)

  • 内容
  • 评论
  • 相关

最近在做钉钉小程序,说起来真的一言难尽,总的来说给我的感觉就是,钉钉小程序就是个半成品,相比起来微信小程序就要好得多,近些年阿里的产品给我的印象都不是很好,我曾一度认为阿里很多项目是外包的。

闲话不多说,开始写坑:

1.钉钉小程序前端文档不能看钉钉里面的文档,需要看支付宝的文档,因为钉钉文档不是最新的,不全(比如Component2 钉钉里压根没有,这对新手是超级大坑)

2.钉钉小程序的html分组件和页面2种,如果要分模块写只能选择组件,但是部分组件在组件里写会和在页面里写不一样。

3.钉钉的网络请求只支持get和post,而且由于不支持json对象传参,需要把head头改成headers:{'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'},后端也需要做相应修改。

4.父组件现在已经可以调用子组件的方法,要使用ref,需要用Component2 编译,需要看支付宝的文档,钉钉没有。

5.picker组件的onChange选取消也会触发,但是模拟器里不会。

6.某些标签会莫名出现一些class,原因不明。

7.am-checkbox 在组件环境下使用ctrlChecked,会导致显示不刷新,并且这个组件checked只能初始化的时候修改状态,所以如果需要中途手动修改需要用到ctrlChecked,但是ctrlChecked组件下又有bug。还不如自己封装一个或者直接使用radio活checked。

8.钉钉小程序没有双向绑定的语法糖,所以你要双向绑定只能每个组件写事件。

9.用户改变了组件的某个值,你想还原,你会发现不能还原,因为value这时一样的,原因就如上面所说,需要做双向绑定。

10.钉钉小程序没观察特定参数变化的函数,就是没有watch,只能靠didUpdate或deriveDataFromProps(Component2)。

11.input的type 就算是number形的 放默认参数还是需要用string类型,不然会出问题

12.在a:if和for循环里面的组件只会触发初始化声明周期(如didMount),不会触发didUpdate,所以写组件的时候要不didMount,didUpdate,同时触发初始化组件,要不就是用deriveDataFromProps,不过deriveDataFromProps需要用Component2编译。

13.redirectTo在有时候需要settimeout后调用,不然有可能会报错(不知道原因,但是报错不影响使用)

14. receiveData: worker render components is not sync 有可能是因为绑定的值为null

15.error: 14, errorMessage: "Parse response, http request decode failed:Errorxxxxxxx 可能是证书过期,用http试试。

16.钉钉小程序的开发工具非常耗内存,随便运行一会儿内存就能爬到6g

17.真机测试有时候包会有问题,不知道原因,只能说先用预览测试。

18.钉钉小程序没有获取当前路由地址的方法

src=http___img1.mydrivers.com_img_20200213_0bf2a163adf04a32a88c0e8c07cba3ea.jpg&refer=http___img1.mydrivers.jpg

随着用钉钉项目越来越多,后续还会列举一些坑,上面不少坑本人花了很长时间才发现解决,并且百度都是找不到,所以新手好好看,可以减去不少踩坑的时间。

评论

0条评论

发表评论

电子邮件地址不会被公开。