Как перейти от пользовательского навигатора к createBottomTabNavigator в React Native? - PullRequest
2 голосов
/ 05 марта 2019

У меня есть собственный навигатор, потому что я хотел вернуться к предыдущему экрану, используя жест смахивания назад. Ниже приведен код основного файла, из которого вызываются навигаторы.

const MainSwipeStack = () => {
    return(
        <Navigator>
            <Route name="LoggedOutHome" component={LoggedOutHome} />
            <Route name="SignUp" component={SignUp} />
            <Route name="SignupUsername" component={SignupUsername} />
            <Route name="Login" component={Login} /> 
        </Navigator> 
    );
}

export default createSwitchNavigator({
    SwipeStack: {screen: MainSwipeStack},
    TabHolder: {screen: TabHolder}
}, {
    initialRouteName: 'SwipeStack',
    headerMode: 'none',
});

А ниже ссылка на код Navigator.js. (Я не добавил код здесь, потому что это длинный код.)

https://gist.github.com/shubham6996/a4197d2d0b664d4aabe01091cac6c91e

И TabHolder выводит меня на экран, на котором createBottomTabNavigator.

Итак, теперь я не могу перейти от экрана Login к стеку TabHolder.

Как мне перейти от Login в пользовательском навигаторе к TabHolder стеку?

1 Ответ

1 голос
/ 06 марта 2019

кажется, что навигационных реквизитов нет,

попробуйте это

export default withNavigation(Login);

при входе в систему, и да, импортируйте также

import {withNavigation} from 'react-navigation'

Компоненты, которые непосредственно не используются впо умолчанию в навигаторах отсутствует навигационная опора.

Так что вам нужно либо передать его как обычный реквизит, например,

<Login navigation={this.props.navigation} 

, но в стеке у нас нет навигационной опоры, поэтому мы не можем пройтикак это (или idk, если у нас есть реквизит ....)

, поэтому альтернативный вариант - withNavigation и withNaviagtionFocus, как показано выше

найти подробности о с навигацией

...