反应在同一路线上导航不同的路由参数



我的应用程序中有一条可以从两个不同位置导航到的路线。

具体说来:

主屏幕(堆栈导航(->目标路由

选项卡导航 ->目标路线

我注意到,无论目标路由的导航方式

如何,反应导航都会重复使用相同的目标路由组件(不会重新挂载(。

遗憾的是,这意味着路由参数始终与用于导航到目标路由的第一种方法相同。

当从主屏幕导航到目标路线时,我想聚焦一个输入搜索框,但在通过选项卡导航导航时则不然。

最初我使用以下代码:

useEffect(() => {
    const _focusSearchBar = (payload) => {
        if (props.navigation.getParam('shouldFocus') && searchBar && searchBar.current) {
            searchBar.current.focus();
        }
    }
    let focusSub = props.navigation.addListener('didFocus', _focusSearchBar);
    _focusSearchBar();
    return () => focusSub.remove();
}, []);

我怎样才能做到这一点?此外,目标路由会加载数据,因此它不会重新挂载可能是一件好事......

从本质上讲,我还需要一种方法来确定路线是如何导航的,通过主屏幕或通过选项卡导航。

谢谢!

读取 https://reactnavigation.org/docs/en/navigating.html#navigate-to-a-route-multiple-times

您需要使用 navigation.push() 来运行具有不同参数的组件副本。

相关内容

  • 没有找到相关文章

最新更新