我正在使用react(V0.13.3),flux(V2.0.3)
我有一个包含许多内部组件的组件。
当内部组件更新时,浏览器即将关闭。我无法滚动点击,有时我会弹出一个说法:
你想停止反复无效的剧本。
我正在遵循所有React生命周期方法并实施shouldComponentUpdate
方法。
我认为DOM Diffing占用了大量的CPU时间和分配给浏览器的RAM。
任何关于我为什么会遇到这个问题以及如何摆脱它的想法?
答案 0 :(得分:0)
Reactjs很容易进入无休止的渲染周期。让我们假设您在componentDidUpdate中放置了一个从服务器中提取数据的方法,它会改变父组件使用的reducer。繁荣。组件树重新渲染。您的shouldComponentUpdate可能无用bc输入不是相同的引用。然后服务器再次受到攻击。无尽的循环。
解决方案是使用警卫。当你第一次点击componentDidUpdate(或你在后面的任何地方)方法时,改变reducer的方法应该在reducer上设置一种IsLoading变量。检查此变量以查看是否应再次触发变更请求。这可以防止不必要的重新渲染