对同一路线上的不同路线参数进行导航反应

时间:2019-06-18 22:14:41

标签: reactjs navigation native react-navigation

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

特别是:

主屏幕(StackNavigation)->目标路线

标签导航->目标路线

我已经注意到,无论目标路线也以哪种方式导航,反应导航都会重复使用相同的目标路线组件(不会重新安装)。

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

从主屏幕导航至目标路线时,而不是通过标签导航进行导航时,我想将输入搜索框放在焦点上。

最初我使用的是这段代码:

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();
}, []);

我该如何实现?目标路由也会加载数据,因此最好不要重新安装...

从本质上讲,我还需要一种方法来确定路线的导航方式,即通过主屏幕还是通过标签导航。

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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