javascript - 如何在反应导航 5 中定义屏幕内的自定义标题?
问题描述
我知道我们在根文件中定义屏幕时使用选项道具
<Stack.Screen
name="index"
component={Index}
options={({ navigation, route }) => ({
headerRight: (props) => (
<MaterialIcons name="add" size={30} style={{ marginRight: 20 }} />
),
})}
/>
但我想像我们以前在反应导航 4 中所做的那样在屏幕中自行定义
Index.navigationOptions = () => {
return {
headerRight: (
<MaterialIcons name="add" size={30} style={{ marginRight: 20 }} />
),
};
};
但是我如何在 React Navigation 5 中做到这一点?
解决方案
使用导航.setOptions
function HomeScreen({ navigation }) {
React.useLayoutEffect(() => {
navigation.setOptions({
headerRight: () => (
<MaterialIcons name="add" size={30} style={{ marginRight: 20 }} />
),
});
}, [navigation]);
推荐阅读
- javascript - 无法将用户存储在 Express.js 会话中
- java - java - 如何在JavaFX中没有侦听器的情况下检查键是否关闭?
- excel - Excel 数据验证 - 仅添加 1 的日期
- python - 如何将日期选择器添加到 Django ModelFrom 中?
- java-stream - 为什么使用parallelStream后的编码器没有执行?
- javascript - 在 Jest 中使用带有 toHaveProperty() 的正则表达式
- ios - 在 swift 中使用 for 循环创建字典
- java - 无法在 Android 应用程序中下载从 Web 应用程序发送的媒体文件
- python - 如何有效地将跨数据帧的乘法配对
- java - 我想读取一个文本文件并根据列值对其进行拆分