在使用 Redux 在大型 React Native 应用程序中导航期间,所有访问的场景(导航堆栈中的场景)都保持安装状态。当从最后一个场景组件调度任何动作时,所有这些场景都会接收道具并按照访问它们的顺序进行渲染。它会导致调度和最后一个场景渲染之间出现冻结和明显的延迟。
我正在使用导航反应本机路由器通量 https://github.com/aksonov/react-native-router-flux但同样的问题也发生在原始的 React Native Navigator 上。
Video React Native/Redux 应用程序中可能出现的导航问题 https://youtu.be/VM7OW3uqR7k
Code 反应 Redux 导航测试 https://github.com/alsh76/react-redux-navigation-test
如果知道如何防止将 props 传递给导航链中未聚焦的组件,那就太好了。
目前,我正在检查每个组件的 shouldComponentUpdate 是否聚焦(可见),并在相反的情况下返回 false。
还有更好的解决办法吗?
我建议您使用场景中的导航索引和标题渲染方法来计算当前场景和正在渲染的场景之间的场景距离。如果距离 > 1,则返回 null。
这应该可以防止渲染整个导航历史记录。这种行为不能开箱即用,对我来说没有任何意义,但它确实存在。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)