React Native не передает данные через параметр навигации - PullRequest
2 голосов
/ 10 марта 2020

Я пытаюсь передать некоторые данные при переходе на другой экран, но он не работает. Он перемещается к экрану, но данные не определены.

У меня есть эта кнопка на экране 'Produto':

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

Экран входа в систему:

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

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
});

Ответы [ 2 ]

0 голосов
/ 11 марта 2020

Просто сделай это

const MainNavigator = createStackNavigator(
  {
    Home: HomeScreen,
    Produto: ProdutoScreen,
    Login: LoginScreen,     //this will resolve your issue
  },
  {
    initialRouteName: "Home"
  }
);
0 голосов
/ 10 марта 2020

Просто обновите строку, где вы пытаетесь получить доступ к параметру. Вот так

const LoginScreen = props => {    
  const test = props.navigation.state.params.test;
  console.log(test);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...