阅读 22

小程序(钉钉)开发二三事总结

页面开发问题

ScrollView组件的lower事件

  • 问题简述:当ScrollView的垂直方向滚动触发时,如果手动清空其内容则会莫名触发其lower事件。
  • 问题背景:ScrollView内容为分页列表,lower事件中放置其上拉加载下一页操作。当其加载到第二及其以上页时,改变搜索条件并且清空列表并且页码置1,此时会触发两次请求列表接口,即会请求当前搜索条件下的第一二页内容。
  • 问题解决:设置flag变量。搜索条件改变是flag为true,在lower事件里判断flag为true时不走lower事件

radio单选按钮的选中状态样式与未选中宽高不一致

  • 问题解决:麻烦UI同事切一个选中的单选按钮图片替换掉,再设置宽高。

无法添加公共组件

  • 问题未解决:使用到的页面都引入一遍(鸡肋)。

mini-ali-ui的Tabs组件中使用Popver的蒙层问题

  • 问题简述:每个Tab下面都有一个ScorllView列表,列表的上部有一个筛选组件(由Popver组件封装成的),切换Tab时筛选组件的显隐蒙层会受影响。

-问题未解决:暂时控制mask未显示。

自定义Loading问题

  • 问题简述:暂无法找到全局的JS注入loading方式(可能需要钉钉插件)。
  • 问题解决:自定义Loading组件(每个页面都注入一次)。

组件开发内部的setData也会触发组件的didUpdate回调

  • 问题解决:此时需要在didUpdate回调里特殊处理。

JSAPI的使用注意问题

dd.request仅支持GET和POST

Content-Type为application/json时,data参数只支持json字符串,用户需要手动调用JSON.stringify进行序列化

小程序内部没有FormData对象

小程序的更新提示会由几秒的延迟

合理的使用reLaunch会使程序跳转更优雅

例如:

if(getCurrentPages().length === 5) {
  dd.redirectTo({url:'/xx'});
} else {
  dd.navigateTo({url:'/xx'});
}
复制代码

未完,待续...

文章分类
前端
文章标签