【发布时间】:2019-09-08 00:21:15
【问题描述】:
我正在尝试将自定义标头注入到使用 Hooks 的 React 功能组件。
例如,我有以下带有一些钩子的 React 功能组件:
function StoryHome(props) {
const [communityObj, setCommunityObj] = useState({
uid: null,
name: null,
});
...
}
StoryHome.navigationOptions = {
title: 'Stories',
headerTitleStyle: {
textAlign: 'left',
fontFamily: 'OpenSans-Regular',
fontSize: 24,
},
headerTintColor: 'rgba(255,255,255,0.8)',
headerBackground: (
<LinearGradient
colors={['#4cbdd7', '#3378C3']}
start={{ x: 0, y: 1 }}
end={{ x: 1, y: 1 }}
style={{ flex: 1 }}
/>
),
headerRightContainerStyle: {
paddingRight: 10,
},
headerRight: (
<TouchableOpacity onPress={navigation.navigate('storiesList')}>
<Ionicons
name="ios-search-outline"
size={25}
color="white"
left={20}
/>
</TouchableOpacity>
)
};
export default StoryHome;
所以这种工作,除了TouchableOpacity 部分。
首先,我无法正确渲染 Ionicon,其次,我无法访问功能组件之外的 navigation 对象。
我很想继续使用 Hooks,但似乎无法解决这个问题。
【问题讨论】:
-
你是如何在 createStackNavigator 中添加这个 StoryHome 的?
-
像这样:
export const StoryNavigator = createStackNavigator({ StoryHome: { screen: StoryHome }, StoryDetail: { screen: StoryDetail }, StoryList: { screen: StoryList }, }); -
如果您使用的是导航 4:reactnavigation.org/docs/upgrading-from-4.x/…
标签: reactjs react-native header react-navigation