【问题标题】:Force React Navigation to wait for new page is fully loaded before navigating to it?在导航到新页面之前强制 React Navigation 等待新页面完全加载?
【发布时间】: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


    【解决方案1】:

    也许最好的解决方案是动画到当前位置。我认为没有其他方法。

    【讨论】:

    • 如果真的没有其他方法,那就是另一种方法。它在 iOS 上看起来不错,但在 Android 上滚动动画非常难看,因为它非常快。
    • 你用的是 flatlist,你试过 initialScrollIndex 吗?
    • 我正在使用 ScrollView...
    猜你喜欢
    • 2019-02-10
    • 1970-01-01
    • 2023-03-08
    • 2020-02-08
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多