Я пытаюсь передать идентификатор пользователя с экрана входа в систему на домашний экран, который является частью навигатора с вложенными вкладками. Вот как структурировано мое приложение:
const mainStack = () =>(
<Tab.Navigator
tabBarOptions={{
activeTintColor: 'tomato',
inactiveTintColor: 'gray',
}}
>
<Tab.Screen name="Home" component={Homescreen}
options = {{headerStyle: {backgroundColor: 'yellow'}}}
/>
<Tab.Screen name="Profile" component={otherStack} />
</Tab.Navigator>
)
export default () => (
<NavigationContainer >
<Stack.Navigator screenOptions={{
headerShown: false
}}>
<Stack.Screen name='Welcome' component={WelcomeScreen} />
<Stack.Screen name = 'Register' component = {RegisterScreen} />
<Stack.Screen name= 'Login' component={LoginScreen} />
<Stack.Screen name = 'mainStack' component={mainStack} />
</Stack.Navigator>
</NavigationContainer>
)
Всякий раз, когда я go с экрана входа в систему Домой и вызываю this.props.navigation.getParam ('id'), я получаю сообщение об ошибке, говорящее, что оно не функция. После более тщательного изучения я вижу, что this.props.navigation.state не определено. Возможно, это означает, что мои параметры не передаются на главный экран, хотя у меня нет проблем с переходом на него.
Я пытался использовать NavigationActions, но получаю ошибку, которую больше нигде не упоминаю.
Я перехожу к Home, как это:
this.props.navigation.navigate('Home' { id: 'myId' })
Я также попробовал этот синтаксис:
navigation.navigate('Root', {
screen: 'Settings',
params: { user: 'jane' },
});
, но я получаю ту же ошибку
It Также стоит отметить, что я использовал React.component, а не превращал свои экраны в функции. Я не уверен, вызывает ли это какие-либо проблемы, потому что в руководстве по реакции-навигации v5 я видел, как парень использует функции вместо компонентов реакции.
любая помощь будет очень признательна !!