Попытка (и не удалось ...) передать параметры через Tab Navigator React Native - PullRequest
0 голосов
/ 31 марта 2020

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

Я надеюсь, что я что-то пропустил или слишком усложняю - однако я не могу найти решение без необходимости внедрения Redux ... Кто-нибудь может посоветовать, где я ошибаюсь? ? Есть ли способ установить и получить доступ к набору глобальных параметров для всех Nav?

Ящик Nav

import BottomTabNavigator from "../components/BottomTabNav";
import { SettingsNav } from "../components/ScreensStack";
import { ProfileNav } from '../components/ScreensStack';
import {FollowersNav} from '../components/ScreensStack';

const DrawerNavigator = createDrawerNavigator({
    Feed: BottomTabNavigator,
    Settings: SettingsNav,
    Profile : ProfileNav,
    Followers : FollowersNav
},
{
    contentComponent: (props) => (
        <View style={{flex:1}}>
            <SafeAreaView forceInset={{ top: 'always', horizontal: 'never' }}>
                <DrawerItems {...props} />
                <Button title="Logout"/>
            </SafeAreaView>
        </View>
    ),
    drawerOpenRoute: 'DrawerOpen',
    drawerCloseRoute: 'DrawerClose',
    drawerToggleRoute: 'DrawerToggle'
}, {
    gesturesEnabled : true
});

const Drawer = createAppContainer(DrawerNavigator);

export default Drawer;

AppStack

const AuthStackNavigation = createStackNavigator({
    Splash: {
        screen: Splash,
        navigationOptions: {
            header: null
        }
    },
    Login:  {
        screen: Login,
        navigationOptions: {
            header: null
        }
    },
    SignUp: {
        screen: SignUp,
        navigationOptions: {
            header: null
        }
    },
    ResetPW: {
        screen: ResetPW,
        navigationOptions:{
            header: null
        }
    },
}, {
    initialRouteName: "Splash"
})

const App = createSwitchNavigator({
    AuthStack : AuthStackNavigation,
    FeedDrawer : Drawer
});

export default createAppContainer(App);
...