lspriv / wx-calendar

微信小程序日历
MIT License
284 stars 46 forks source link

feat: 新增 跨环境开发;fix: 修复一些问题 #25

Closed yenche123 closed 3 years ago

yenche123 commented 3 years ago
yenche123 commented 3 years ago

另外,用这种静态编译转原生小程序代码的开发模式,有一些坑点,刚刚想把控制日期里每个 schedule 的代码整合在一起,在 wxs 里写了一个函数

var controlSchedule = function(ins, show) {
  var schedules = ins.selectAllComponents('.wx-calendar-panel-solar-schedules')
  for (var i = 0; i < schedules.length; i++) {
    if(show) schedules[i].addClass('show')
    else schedules[i].removeClass('show')
   }
}

静态编译后运行小程序,会直接飘红报错

image

折腾了很久

在社区查询后才知道,也有人有遇到 https://developers.weixin.qq.com/community/develop/doc/0004e6bed60c28e2de9c3fb3251400?highLine=wxs%2520SyntaxError%253A%2520Unexpected%2520token%2520%27var%27 一模一样的问题,都是 uglify 引起的

感觉可以直接用原生开发,会少踩一点坑,而且原生小程序的代码已经很轻量,算很好维护了~

最后,不得不夸,这个组件真的真的好棒,第一次在小程序上遇到这么丝滑的日历组件,手痒就小修了一下~

lspriv commented 3 years ago

这个问题我遇到过,后来我查找了官方文档,文档里有一条关于var变量提升的说明,如图最后一条 截屏2021-10-14 下午7 55 06

在uglify的配置中将var变量提升,即设置hoist_vars为true,解决了这个问题 截屏2021-10-14 下午7 58 51

yenche123 commented 3 years ago

我看 git clone 下到本地的源码就里已经有这一行了,所以显然还是不行,不过还是谢谢你 😎