【发布时间】:2019-06-18 22:14:41
【问题描述】:
我的应用中有一条路线,可以从两个不同的位置导航到该路线。
具体来说:
主屏幕 (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();
}, []);
我怎样才能做到这一点?目标路由也加载数据,所以它不重新挂载可能是一件好事......
本质上,我还需要一种方法来确定路线的导航方式,通过主屏幕或通过标签导航。
谢谢!
【问题讨论】:
标签: reactjs navigation native react-navigation