Как использовать backBehavior: «история» на моем дне - PullRequest
0 голосов
/ 17 апреля 2019

У меня BottomTabNavigator в моем приложении Expo в качестве начальной страницы. Всякий раз, когда я перехожу на другой экран и возвращаюсь назад, я хочу, чтобы была открыта последняя открытая вкладка в tabnavigator. Я читал, что: 'backBehavior:' history 'делает именно это, но у меня это не работает, вместо этого он переходит в исходную таблицу. Это мой код Табнавигатора:

class MainTabNavigator extends React.Component {

const DiscoverStack = createStackNavigator(
    {
        Discover: DiscoverScreen
    },
    { backBehavior: 'history' }
);

DiscoverStack.navigationOptions = {
    tabBarLabel: 'Ontdek',
    backBehavior: 'history',
    tabBarIcon: ({ focused }) => (
        <TabBarIcon
            focused={focused}
            name={`${focused ? 'md-bulb' : 'ios-bulb'}`}
        />
    )
};

const TodoStack = createStackNavigator(
    {
        Todo: TodoScreen
    },
    { backBehavior: 'history' }
);

TodoStack.navigationOptions = {
    tabBarLabel: 'Wat te doen',
    backBehavior: 'history',
    tabBarIcon: ({ focused }) => (
        <TabBarIcon focused={focused} name={'md-calendar'} />
    )
};

const ShopStack = createStackNavigator(
    {
        Shop: ShopScreen
    },
    { backBehavior: 'history' }
);

ShopStack.navigationOptions = {
    tabBarLabel: 'Shop',
    backBehavior: 'history',
    tabBarIcon: ({ focused }) => (
        <TabBarIcon focused={focused} name={'md-cart'} />
    )
};

const WinStack = createStackNavigator(
    {
        Win: WinScreen
    },
    { backBehavior: 'history' }
);

WinStack.navigationOptions = {
    tabBarLabel: 'Win',
    backBehavior: 'history',
    tabBarIcon: ({ focused }) => (
        <Icon2
            focused={focused}
            size={26}
            style={{ marginBottom: -3 }}
            color={focused ? Colors.tabIconSelected : Colors.tabIconDefault}
            name={'ticket'}
        />
    )
};

const UserStack = createStackNavigator(
    {
        User: UserScreen
    },
    { backBehavior: 'history' }
);

UserStack.navigationOptions = {
    tabBarLabel: 'Account',
    backBehavior: 'history',
    tabBarIcon: ({ focused }) => (
        <TabBarIcon focused={focused} name={'md-person'} />
    )
};

export default createBottomTabNavigator(
    {
        DiscoverStack,
        TodoStack,
        ShopStack,
        WinStack,
        UserStack
    },
    { backBehavior: 'history' }
);

1 Ответ

0 голосов
/ 17 апреля 2019

Используйте createAppContainer в качестве кода ниже.

вместо

example.js:

const defaultNavigationOptions = {
  headerTintColor: "color",
  headerStyle: {
    backgroundColor: "color"
  },
  headerTitleStyle: {
    fontWeight: "your select weight",
    fontSize: "select size"
  },
};

const DiscoverStack = createStackNavigator(
    {
        Discover: DiscoverScreen
    },
    {
    defaultNavigationOptions,
  }
);

const AppNavigator = createBottomTabNavigator(
  {
   dis : DiscoverStack,
   ...
  },
 backBehavior: 'history'
);

const AppContainer = createAppContainer(AppNavigator);

export default AppContainer;

...