我在这里对React Native开发人员有疑问。我使用createMaterialBottomTabNavigator,我希望选项卡栏中的一个按钮可以打开屏幕,而不是在选项卡中,而是在堆栈导航器中。根据文档,我们可以使用目标屏幕中的useEffect挂钩来防止默认行为,并从那里进行导航。这是目标屏幕中的代码:
useEffect(() => {
const unsubscribe = navigation.addListener("tabPress", (e) => {
// Prevent default behavior of tab press in bottom navigator
e.preventDefault();
// Open screen in stack navigator, not in tab navigator
navigation.navigate("TargetScreen");
});
return unsubscribe;
}, [navigation]);
除了一个细节外,它运作良好:物料底部选项卡导航器在首次聚焦之前不会安装其路线,因此,当我第一次按下按钮时,它会在选项卡中打开屏幕。之后,当我按下相同的按钮时,它将按预期在堆栈导航器中打开屏幕。
有人知道该问题的解决方法吗?有没有一种方法可以强制“材料”选项卡在聚焦之前安装路线?还是在屏幕首次安装时调用挂钩的方法?
谢谢!