从prevProps改为使用nextProps,避免props的提前赋值,及避免component.props = prevProps的操作
weapp: 从prevProps改为使用nextProps,避免props的提前赋值 (b2bdb6e)
Taro开发已经逐渐意识到这个问题。相关链接

从prevProps改为使用nextProps,避免props的提前赋值,及避免component.props = prevProps的操作
这里面,后面的评论为
@huey-LS 这个改动不能只改 weapp,所有小程序端、redux 和 mobx 的更新赋值都得改。我先 revert 回去了。
Bug Fixes
Reverts
props变化,除了小程序适配层的变化之外,还要修改taro-redux和taro-mobx相应的设置。
而上面出问题的pr只是改了taro-weapp,就会导致使用了redux和mobx的代码出现问题。
1、小程序端、redux、mobx的props修改,是不是要验收时更仔细一些?
2、pr提交日期为11月11日,合并时间为11月12日,发布版本的时间也为11月12日,那么这么大的pr改动所需要的功能测试时间为多少呢?
3、issue问题追踪是否及时?
在出现3~5个bug时,就该及时追踪这个问题的缘由啦,但事实上,这个问题是出现后一个月才修复的,并且期间发布了1.3.23到1.3.27多个版本,那停留在这些版本的小程序是不是依旧在碰到这些问题呢?
4、版本升级提醒是否有呢?
在出现这么大的问题后,是否要增加版本升级提醒或者公告呢?
@luckyadam @Chen-jj @Garfield550 请各位给出相应的解答或评论,感谢。
欢迎提交 Issue~
如果你提交的是 bug 报告,请务必遵循 Issue 模板的规范,尽量用简洁的语言描述你的问题,最好能提供一个稳定简单的复现。🙏🙏🙏
如果你的信息提供过于模糊或不足,或者已经其他 issue 已经存在相关内容,你的 issue 有可能会被关闭。
Good luck and happy coding~
CC @luckyadam
CC @Garfield550
CC @Chen-jj
[以下内容仅为个人观点,不代表官方任何观点]
测试现在人手急缺,面对近 600 的 Issues,修复完后对各小程序端进行测试将耗费大量时间,后续可以考虑完善单元测试,增加社区参与者帮助测试和考虑自动化测试的可行性。
社区的贡献 Pull Request 只对微信这一端做了修复,单从这一个 PR 的合并流程上并没有问题,它确实解决了一个 Bug,不过合并之后没有考虑是不是影响其他端,是一个疏忽。
Issue 问题追踪处理目前属于随性修复,没有引入一些适合于开源项目的开发流程,会学习一些开源项目的实践经验,整理之后和大家讨论。
出现问题后的处理方式有很多,比如 Pin 一个公告 Issue,在文档站上提示,微信群里让小助手 at 全体成员一下之类的。
我来领锅了。
事实上 issues 应该分为几个问题,并不是都由这个 PR 所导致。
b2bdb6e 只影响到了 #5057 。
引起的大部分渲染问题是因为 f240cff ,大概影响了 #4983 #4994 #5019 #5046 #5055 等。
主要是因为去掉的 shakeFnFromObj 方法还有有着深拷贝的功能。为什么 setData 前需要深拷贝,还得再看看。
现在运行时没有单测,一般大改动我这边尽量跑一些复杂的 demo,小改动会跑对应问题的 demo。shakeFnFromObj 这个改动应该只跑了插件那边的 demo,而没跑微信小程序的 demo,这里疏忽了的确是我的问题。
以目前的架构,运行时不好写单测,这次的问题和底层小程序机制也有一定耦合,因此单测也不一定测得出来。对于没有及时解决问题,是因为运行时主要由我这边维护,而我刚好那段时间要赶一个 deadline,所以没太顾得上 issues。以后会尽量尽快地修复问题。
解决办法我认为首先是有完善的测试用例,然后框架底层设计得尽量简单,让更多开发者可以直接 debug 框架,Taro 3 应该能做到。
@Garfield550 @Chen-jj 感谢你俩的回复。
我这边其实是关心三个小点的:
1、我本身公司内的微信小程序、抖音小程序要没啥问题。这次其实我已经从1.3.23到1.3.25的时候就发现问题了,但还以为1.3.25是没啥大问题的,所以就没有及时排查框架问题。
2、问题排查方面,正如 @Chen-jj 所说,框架底层问题的排查,可能目前略微麻烦,希望在Taro 3上面这方面有所突破。
3、问题修复方面,正如 @Garfield550 所说,问题修复后,可以定一个较为稳定的大改动版本,在issue或微信群内来周知,并且新版本的问题要及时收集并修复。
作为issue管理的一员,我也希望我自己在之后能更及时发现相关问题,及时转发给各位主要开发的小伙伴。
3ks
Most helpful comment
我来领锅了。
事实上 issues 应该分为几个问题,并不是都由这个 PR 所导致。
b2bdb6e 只影响到了 #5057 。
5037 #5008 是因为 64f1ea4
引起的大部分渲染问题是因为 f240cff ,大概影响了 #4983 #4994 #5019 #5046 #5055 等。
主要是因为去掉的 shakeFnFromObj 方法还有有着深拷贝的功能。为什么 setData 前需要深拷贝,还得再看看。
现在运行时没有单测,一般大改动我这边尽量跑一些复杂的 demo,小改动会跑对应问题的 demo。shakeFnFromObj 这个改动应该只跑了插件那边的 demo,而没跑微信小程序的 demo,这里疏忽了的确是我的问题。
以目前的架构,运行时不好写单测,这次的问题和底层小程序机制也有一定耦合,因此单测也不一定测得出来。对于没有及时解决问题,是因为运行时主要由我这边维护,而我刚好那段时间要赶一个 deadline,所以没太顾得上 issues。以后会尽量尽快地修复问题。
解决办法我认为首先是有完善的测试用例,然后框架底层设计得尽量简单,让更多开发者可以直接 debug 框架,Taro 3 应该能做到。