react-native - React Native - 导航 5 上材料底部选项卡上的标题标题
问题描述
我在 Navigation 5 中有一个 Material Bottom Tabs into a Stack Navigator。
假设 dto 获取标题并将其路由到一个函数但不起作用。
功能:
function getHeaderTitle(route) {
const routeName = route.state
? route.state.routes[route.state.index].name
: route.params?.screen || 'Home';
switch (routeName) {
case 'Favorites':
return 'Favorites';
case 'Info':
return 'Info';
}
}
materialBottomTabs
const NavTab = () => {
return (
<Tab.Navigator>
<Tab.Screen
name="Favorites"
component={FavoritesScreen}
options={({route}) => ({
tabBarLabel: 'Fav',
tabBarIcon: () => IconFav(),
})}
/>
<Tab.Screen
name="Info"
component={InfoScreen}
options={({route}) => ({
headerTitle: 'Info',
tabBarLabel: 'Info',
tabBarIcon: () => IconInfo(),
})}
/>
</Tab.Navigator>
堆栈导航器
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen
name="Home"
component={NavTab}
options={({route}) => ({
headerTitle: getHeaderTitle(route),
})}
/>
<Stack.Screen
name="Detail"
component={ItemDetailScreen}
/>
</Stack.Navigator>
</NavigationContainer>;
我很容易设置堆栈中列出的屏幕的标题。例子:
const ItemDetailScreen = ({route, navigation}) => {
useEffect(() => {
navigation.setOptions({
headerTitle: item.title,
});
}, []);
但我无法将屏幕的标题设置到材料底部选项卡中。它们总是将名称设置到堆栈导航器中。我该怎么做?
解决方案
options={({route}) => ({
headerTitle: getHeaderTitle(route),
})}
我认为应该是:
options={({route}) => ({
title: getHeaderTitle(route),
})}
推荐阅读
- metadata - Google Optimize - 如何动态获取“测试描述”和其他测试元数据
- javascript - 使用 Storybook 渲染多个变体
- flutter - Dart:将文件的大小保持在一定大小而不截断
- python - Python datetime.fromisoformat() 拒绝 JavaScript 日期/时间字符串:ValueError: Invalid isoformat string
- react-native - React Native:我如何使用 formik 和 yup 将文本计数添加到文本输入中?
- python - 在 hist 和 hist2d 的子图中将颜色条放在特定 hist2d 上
- c# - NHibernate 不会删除一对多关系中的孤儿
- php - 从字符串中提取数据的最佳方法
- javascript - 如何通过javascript更改标题的边距
- quickjs - QuickJS:由于修改函数原型可能导致内存泄漏