Reactjs 如何使用backBehavior:';历史';在我的屁股上

Reactjs 如何使用backBehavior:';历史';在我的屁股上,reactjs,react-native,react-navigation,expo,Reactjs,React Native,React Navigation,Expo,我的Expo应用程序中有一个BottomTabNavigator作为初始页面。每当我导航到另一个屏幕并返回时,我希望打开tabnavigator上最后一个打开的选项卡。我读过这样一篇文章:“backBehavior:”history“就是这么做的,但它对我不起作用,而是转到initialtab。这是我的Tabnavigator代码: class MainTabNavigator extends React.Component { const DiscoverStack = createStac

我的Expo应用程序中有一个BottomTabNavigator作为初始页面。每当我导航到另一个屏幕并返回时,我希望打开tabnavigator上最后一个打开的选项卡。我读过这样一篇文章:“backBehavior:”history“就是这么做的,但它对我不起作用,而是转到initialtab。这是我的Tabnavigator代码:

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' }
);
类MainTabNavigator扩展React.Component{
const DiscoverStack=createStackNavigator(
{
发现:发现屏幕
},
{backBehavior:'history'}
);
DiscoverStack.navigationOptions={
tabBarLabel:“Ontdek”,
backBehavior:“历史”,
tabBarIcon:({focused})=>(
)
};
const TodoStack=createStackNavigator(
{
Todo:TodoScreen
},
{backBehavior:'history'}
);
ToStostack.navigationOptions={
tabBarLabel:“Wat te doen”,
backBehavior:“历史”,
tabBarIcon:({focused})=>(
)
};
const ShopStack=createStackNavigator(
{
商店:ShopScreen
},
{backBehavior:'history'}
);
ShopStack.navigationOptions={
标签:“商店”,
backBehavior:“历史”,
tabBarIcon:({focused})=>(
)
};
const WinStack=createStackNavigator(
{
Win:WinScreen
},
{backBehavior:'history'}
);
WinStack.navigationOptions={
tabBarLabel:'赢',
backBehavior:“历史”,
tabBarIcon:({focused})=>(
)
};
const UserStack=createStackNavigator(
{
用户:用户屏幕
},
{backBehavior:'history'}
);
UserStack.navigationOptions={
tabBarLabel:'帐户',
backBehavior:“历史”,
tabBarIcon:({focused})=>(
)
};
导出默认CreateBoottomTabNavigator(
{
DiscoverStack,
TodoStack,
商店堆栈,
温斯塔克,
用户堆栈
},
{backBehavior:'history'}
);

使用
createAppContainer
如下代码

反而

example.js:

const defaultNavigationOptions={
HeaderIntColor:“颜色”,
头型:{
背景颜色:“颜色”
},
头饰样式:{
fontWeight:“您选择的重量”,
fontSize:“选择大小”
},
};
const DiscoverStack=createStackNavigator(
{
发现:发现屏幕
},
{
默认导航选项,
}
);
const AppNavigator=createBottomTabNavigator(
{
DiscoverStack,
...
},
backBehavior:“历史”
);
const AppContainer=createAppContainer(AppNavigator);
导出默认AppContainer;

尝试将
反应导航选项卡降级为
1.2.0

我知道在收到反馈后,目前正在开发此功能。不是吗?@hongdevelop我在文档中读过:
backBehavior-initialRoute返回初始选项卡,命令返回上一个选项卡,历史返回last VISTED tab,或none。
当它位于文档页上时应该可以工作,对吗?请参见下面的答案。不幸的是,它不记得此解决方案的选项卡历史记录。我不知道它可能是什么。更改导航器的配置如何?我有,但没有影响,是因为当我导航到fr时吗从选项卡项到子页它不是stacknavigator。每当我导航到选项卡内的子页时,选项卡菜单也会消失