反应未定义路线中传递的本机传递参数

问题描述

我试图像这样从屏幕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} />}