我想阻止用户返回上一个屏幕.所以我添加了代码,但这不起作用.这有什么解决方案吗?可以看到警报弹出,但"返回false"不起作用.
componentDidMount() {
BackAndroid.addEventListener('hardwareBackPress', () => {
Alert.alert("alert","alert")
this.props.navigator.pop();
return false;
});
Run Code Online (Sandbox Code Playgroud) 我创建了一个应用程序来进行 React Native 研究。\n完成后,我添加了一些演示屏幕并添加了 \',react-native-onboarding-swiper\'这对我来说似乎是我发现的最简单的方法。\n我还添加了\'@react-native-async-storage/async-storage\',在添加启动屏幕之前,该应用程序可以正常工作没有AsyncStorage
这个想法是,当我们安装它并第一次打开它时,该应用程序会显示演示屏幕,然后,它会在我显示的菜单屏幕中打开。
\n再次编辑:
\n我需要纠正这种情况,以便启动画面仅在应用程序第一次启动时显示,然后它应该启动到主屏幕。\n2 - 主屏幕是我在屏幕截图中显示的屏幕,它向我显示了按钮到"Go Back"。我需要这个消失
我无法使用 headerShown: false,因为在应用程序具有的其他屏幕中,如果我必须有该"Go Back"按钮\n如何以最简单的方式纠正这些问题?
该应用程序与我在下面显示的 App.js 中的代码完美配合,但每当打开应用程序时它都会显示演示屏幕。我创建了一个条件来纠正此问题,因为我需要在第一次打开应用程序时增加显示的演示屏幕。这是添加之前 App.js 的样子else if:
import "react-native-gesture-handler";\nimport React, { useEffect } from "react";\n\nimport { NavigationContainer } from "@react-navigation/native";\nimport { createStackNavigator } from "@react-navigation/stack";\nimport AsyncStorage from "@react-native-async-storage/async-storage";\nimport SplashScreen from "react-native-splash-screen";\n\nimport NuevaOrden from "./views/NuevaOrden";\nimport OnboardingScreen from "./views/OnboardingScreen";\n\nconst Stack = createStackNavigator();\n\nconst App = () => {\n\n//Hide Splash screen …Run Code Online (Sandbox Code Playgroud) 我仍然是新的反应导航.我想在登录成功后重置路由信息.但是有一些参数,比如我希望传递给主页面的登录信息.
import { NavigationActions } from 'react-navigation'
const resetAction = NavigationActions.reset({
index: 0,
actions: [
NavigationActions.navigate({ routeName: 'Profile',
params:{user:this.state.username}})
]
})
this.props.navigation.dispatch(resetAction)
Run Code Online (Sandbox Code Playgroud)
在Profile页面中,我想访问params,所以我使用它:
constructor(props){
super(props)
this.state = { username: this.props.navigation.state.params.user,
}
Run Code Online (Sandbox Code Playgroud)
但我收到:undefined不是控制台日志中的对象(评估'_this.props.navigation.state.params.user').我可以知道如何获取参数?谢谢