React Native 在路由中传递参数未定义
React Native passing params in route getting undefined
我正在尝试将参数从屏幕 A 发送到屏幕 B,如下所示:
这是我目前正在尝试的:
await Auth.signIn(email, password)
.then((user) => {
navigation.navigate('SingInConfirm', {user: user});
})
在我的屏幕 B 上,我想像这样接收用户参数..
const SingInConfirmation = ({ route, signIn: signInCb }) => {
const { user } = route.params;
但我收到此错误:TypeError: undefined is not an object (evaluating 'route.params')
这是我的 StackNavigator
const AuthStack = createStackNavigator();
const AuthModalStack = createStackNavigator();
const AuthNavigator = ({ signIn }) => (
<AuthModalStack.Navigator mode="modal" headerMode="none">
<AuthModalStack.Screen name="AuthPages">
{() => (
<AuthStack.Navigator>
<AuthStack.Screen name="SignIn" component={SignInScreen} />
</AuthStack.Navigator>
)}
</AuthModalStack.Screen>
<AuthModalStack.Screen name="SingInConfirm">
{({ navigation }) => <SingInConformation signIn={signIn} navigation={navigation} />}
</AuthModalStack.Screen>
</AuthModalStack.Navigator>
);
export default AuthNavigator;
为什么我无法在屏幕 B 上接收路由参数?
SingInConformation
组件在这一行中没有收到 route
作为道具,您需要提供它,将这一行从 :
更改为
{({ navigation }) => <SingInConformation signIn={signIn} navigation={navigation} />}
为此:
{({ route, navigation }) => <SingInConformation signIn={signIn} navigation={navigation} route={route} />}
我正在尝试将参数从屏幕 A 发送到屏幕 B,如下所示:
这是我目前正在尝试的:
await Auth.signIn(email, password)
.then((user) => {
navigation.navigate('SingInConfirm', {user: user});
})
在我的屏幕 B 上,我想像这样接收用户参数..
const SingInConfirmation = ({ route, signIn: signInCb }) => {
const { user } = route.params;
但我收到此错误:TypeError: undefined is not an object (evaluating 'route.params')
这是我的 StackNavigator
const AuthStack = createStackNavigator();
const AuthModalStack = createStackNavigator();
const AuthNavigator = ({ signIn }) => (
<AuthModalStack.Navigator mode="modal" headerMode="none">
<AuthModalStack.Screen name="AuthPages">
{() => (
<AuthStack.Navigator>
<AuthStack.Screen name="SignIn" component={SignInScreen} />
</AuthStack.Navigator>
)}
</AuthModalStack.Screen>
<AuthModalStack.Screen name="SingInConfirm">
{({ navigation }) => <SingInConformation signIn={signIn} navigation={navigation} />}
</AuthModalStack.Screen>
</AuthModalStack.Navigator>
);
export default AuthNavigator;
为什么我无法在屏幕 B 上接收路由参数?
SingInConformation
组件在这一行中没有收到 route
作为道具,您需要提供它,将这一行从 :
{({ navigation }) => <SingInConformation signIn={signIn} navigation={navigation} />}
为此:
{({ route, navigation }) => <SingInConformation signIn={signIn} navigation={navigation} route={route} />}