es6+react+mobx之Reaction doesn't converge to a stable state after 100 iterations

本文讲述了在使用es6+react+mobx开发过程中遇到的一个问题:在Safari浏览器中出现Reaction doesn't converge to a stable state after 100 iterations的错误。作者通过排查,发现该问题是由于Safari浏览器版本低,es5-shim中splice方法与es6标准差异导致。在源码中修改了mobx中使用splice方法的部分,解决了问题。
摘要由CSDN通过智能技术生成

前言

近期项目开发技术开始转向react。对于react中的state管理,目前主要使用redux或mobx来进行管理。在作出比较后,选择mobx来进行state的管理微笑。

开展

使用es6+react+mobx,实现需求,疯狂的编写代码奋斗。一个巨大的坑悄悄的在等着踩大哭。

高潮

咦,换个浏览器来跑跑,看看效果如何。满心期待中羡慕。一开始就是使用chrome开发调试,chrome就不用管了。next --》firefox。firefox很给力,一切正常,没毛病。那再来下一个Safari。页面打开,what!!!怎么一直在装圈圈惊讶。说是迟那时快,打开浏览器控制台。一把红色的小叉叉提示出问题了难过。仔细一看控制台输出如下error:Reaction doesn’t converge to a stable state after 100 iterations。。。啥,遍历了一百次,这是什么鬼。其他浏览器都是正常的呀。而且es6转es5也考虑了兼容性,使用了es5-shim。

定位过程

既然出现了,那就得消灭它。一步步得开始漫长的定位过程。是不是非法操作state。于是对有操作state的地方进行详细排查,删除复杂逻辑代码,删除到最后就剩下一个框框了可怜。但是问题依然存在,啊~~~要疯啦骂人。好吧,这肯定不是我的代码写的有问题,我确定,因为哥的代码都快删除光了可怜。既然业务代码没啥问题,那就对引入的模块源码开始质疑了。是不是源码有问题。开启调试模式,重点盯在抛异常的这段源代码上。附上这段源码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值