reactjs - 如何使用 backBehavior: 'history' on my bottomtabnaviagor
问题描述
我的 Expo 应用程序中有一个 BottomTabNavigator 作为初始页面。每当我导航到另一个屏幕并返回时,我都希望打开 tabnavigator 上最后打开的选项卡。我已经读过:'backBehavior:'history' 就是这样做的,但它对我不起作用,而是转到初始选项卡。这是我的 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' }
);
解决方案
用作createAppContainer
下面的代码。
反而
例子.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;
推荐阅读
- python - 没有名为“websockets.legacy”的模块
- haskell - 使用泛型静态分析类型
- javascript - 为什么在 mdn 的这个示例中,每个内部函数都将先前的(父)函数参数作为输入?
- reactjs - Chart.js (react-chartjs-2) - 增加图例标签之间的边距,但不在图表上
- reactjs - 我们可以自定义 create-react-app 应用程序的 babel 和 webpack 的默认配置吗?
- node.js - 如何以 zip 格式下载发布到 GitHub 包注册表的 NPM 包?
- python-3.x - 为什么同步函数中的 time.sleep 会阻塞主 FastAPI 线程?
- django - 区分在 django 中单击了哪个链接按钮
- mysql - 如何将 yyyymmdd hhmmss Etc/GMT 转换为 yyyy-mm-ddThh:mm:ss
- flutter - 从 .p12 文件或 .cer 文件管理器中获取签名