【发布时间】:2022-02-21 17:00:14
【问题描述】:
首先,我以一种非常自定义的方式使用了 React Navigation 的堆栈导航器。我基本上总是使用navigation.replace() 将当前路线替换为新路线,因为我的应用程序具有不同参数的几乎无限的路线可能性,并且我不想保留完整的导航历史记录,这在使用navigation.navigate() 时是不可能的,并且没有将所有路线保留在内存中(应用程序在内存中超过 10 条不同的路线后变得非常滞后)。
所以,我也有自定义函数用于返回导航历史,它从自定义路由对象数组中获取先前的路线和参数,这些对象还包含每条路线的最后滚动位置。
我在每一页上都有一个ScrollView,当返回时,我在useEffect 钩子中设置了它的滚动位置。 react navigation 打开时页面已完全渲染,但有时在显示前还没有滚动到正确位置,加载时页面在位置0时看起来不好然后突然跳转到正确位置。
所以最后的问题是:React Navigation 在导航到页面之前渲染页面,但是有没有办法告诉 React Navigation 现在可以显示它(它已加载并且我已经处理滚动到正确的位置)?所以基本上我需要一种方法来判断页面何时准备就绪。这可能吗?
【问题讨论】:
标签: react-native scroll react-navigation