我的应用程序中有一条路线,可以从两个不同的位置导航到该路线。
特别是:
主屏幕(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();
}, []);
我该如何实现?目标路由也会加载数据,因此最好不要重新安装...
从本质上讲,我还需要一种方法来确定路线的导航方式,即通过主屏幕还是通过标签导航。
谢谢!
答案 0 :(得分:0)
阅读https://reactnavigation.org/docs/en/navigating.html#navigate-to-a-route-multiple-times
您需要使用navigation.push()
来运行具有不同参数的组件副本。