Попытка передать значения в качестве параметров навигации, но не может получить параметр в другом компоненте - PullRequest
1 голос
/ 28 мая 2020

Я пытаюсь реализовать i18n в своем приложении, я установил файл с именем SettingsScreen.js, в этом файле есть много кнопок для изменения языка (см. Пример ниже) и еще один файл с именем HomeScreen.js, это файл должен был получить параметр, переданный через SettingsScreen.js и изменить язык приложения, но я получил эту ошибку:

enter image description here

Итак, я m собираюсь опубликовать остальную часть кода ниже:

HomeScreen. js:

export default function HomeScreen({ route, navigation }) {
  let { lang } = route.params;

  i18n.locale = lang;

  <Rest of the content/>
}

Экран настроек . js:

export default function SettingsScreen({ navigation }) {
  let setPortuguese = () => {
    navigation.navigate("Dashboard", { 
      screen: "HomeScreen", 
      params: { lang: "pt" } 
    })

    <Rest of the content />
  }
}

приложение. js:

export default function App() {

  return (
    <NavigationContainer>
      <Drawer.Navigator>
        <Drawer.Screen name="Dashboard" component={Dashboard} />
        <Drawer.Screen name="Settings" component={SettingsScreen} />
      </Drawer.Navigator>
    </NavigationContainer>
  );
}

1 Ответ

1 голос
/ 28 мая 2020

Проблема заключается в вызове navigation.navigate неверных параметров.

Попробуйте этот код:

Экран настроек. js:

export default function SettingsScreen({ navigation }) {
  let setPortuguese = () => {
    navigation.navigate("HomeScreen", {
      lang: "pt"
    })

    <Rest of the content />
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...