javascript - Tab-navigation v5 标题中特定选项卡屏幕的渲染按钮
问题描述
无法在选项卡导航的标题中呈现按钮
具有导航层次结构
- 堆栈导航
标签导航
- 屏幕 1
- 屏幕 2
- 屏幕 3
我想在标题处呈现一个按钮
使用以下代码来实现这一点
<Tab.Navigator>
<Tab.Screen name="My Shifts"
options={{ tabBarLabel: 'My',
headerRight: () => (
<Button title="Update count" />
), }}
component={Manager}
/>
<Tab.Screen ...... other Screens/>
</Tab.Navigator>
预期行为
应呈现标题上的按钮。
实际行为
没有按钮正在呈现。
如何重现
应用程序.js
import { NavigationContainer } from '@react-navigation/native';
return (
<NavigationContainer>
<StackNavigation />
</NavigationContainer>
)
堆栈.js
import { createStackNavigator } from '@react-navigation/stack';
const Stack = createStackNavigator();
return (
<Stack.Navigator initialRouteName="Home">
<Stack.Screen name="Home" component={Home}
</Stack.Navigator>
)
主页.js
import { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs';
const Tab = createMaterialTopTabNavigator();
<Tab.Navigator>
<Tab.Screen name="My Shifts"
options={{ tabBarLabel: 'My',
headerRight: () => (
<Button title="Update count" />
), }}
component={Manager}
/>
<Tab.Screen ...... other Screens/>
</Tab.Navigator>
我正在使用的版本
反应原生 cli:2.0.1
反应原生:0.63.2
"@react-navigation/drawer": "^5.8.7",
"@react-navigation/material-top-tabs": "^5.2.13",
"@react-navigation/native": "^5.7.2",
"@react-navigation/stack": "^5.8.0",
解决方案
嘿抱歉回复晚了,你可以这样做(1)在每个选项卡屏幕中,为传递给每个屏幕的导航道具添加一个“焦点”事件侦听器:
function componentDidMount()
{
this.props.navigation.addListener('focus', this.setHeaderOptions);
}
(2) setHeaderOptions 是一个函数,它使用 dangerouslyGetParent 来更改实际控制两个选项卡标题的父屏幕:
setHeaderOptions=()=> {
this.props.navigation.dangerouslyGetParent().setOptions({headerRight: () =>
<AnythingYouWant/>}); };
如果上述答案在您的情况下不起作用,您可以参考此链接反应导航 prbblem 中的标题更改
推荐阅读
- excel - 将 1 个工作簿中的表复制到另一个工作簿
- hadoop - LOAD 错误与输入“-”不匹配,需要 RIGHT_PAREN,带有连字符的列
- python-3.x - 使用 predict() 函数时的 Python IndexError
- javascript - 如何在 DiscordJS v13 上向用户添加角色?
- javascript - Firebase 删除字段中的特定内容
- java - 为带有数组的方法编写 JUnit 测试的步骤是什么?
- javascript - 如果在暂停角后满足条件,则播放视频
- javascript - 如何同时输出仪表图和折线图实时数据,问题在server.php页面?
- java - 使用 FirebaseUI 在 recyclerview 内的按钮上实现 onclicklistener
- sorting - 如何按子字段对对象数组进行排序?