React Native不通过导航参数传递数据

问题描述 投票:1回答:2

我试图导航到另一个屏幕时传递一些数据,但是它不起作用。它导航到屏幕,但数据未定义。

我在“产品”屏幕上有此按钮:

onPress={() => {
  props.navigation.navigate("Login", {
    test: "This is just a test"
  });
}}

登录屏幕:

const LoginScreen = props => {    
  const test = props.navigation.getParam("test");
  console.log(test);

测试未定义。

我的导航器(我从此代码段中删除了导入和其他内容):

const MainNavigator = createStackNavigator(
  {
    Home: HomeScreen,
    Produto: ProdutoScreen,
  },
  {
    initialRouteName: "Home"
  }
);

const LoginNavigator = createStackNavigator(
  {
    Login: LoginScreen
  }
);

const DrawerNavigator = createDrawerNavigator(
  {
    Main: {
      screen: MainNavigator
    },
    Login: {
      screen: LoginNavigator
    }
  }
);

const SwitchNavigator = createSwitchNavigator({
  Start: StartScreen,
  Home: DrawerNavigator
});
javascript react-native react-navigation
2个回答
0
投票

只需更新您要访问该参数的行。这样,

const LoginScreen = props => {    
  const test = props.navigation.state.params.test;
  console.log(test);
}

0
投票

只需这样做

const MainNavigator = createStackNavigator(
  {
    Home: HomeScreen,
    Produto: ProdutoScreen,
    Login: LoginScreen,     //this will resolve your issue
  },
  {
    initialRouteName: "Home"
  }
);
© www.soinside.com 2019 - 2024. All rights reserved.