我正在尝试为后退按钮实现自定义图像。我正在使用 react-navigation 5.xx 这是我的 AppNavigator:
const Stack = createStackNavigator();
class MyCustomHeaderBackImage extends React.Component {
render() {
return (
<Image
source={require('../../../res/images/back-button.png')}
style={{width: 22, height: 22, tintColor: '#f00'}}
/>
);
}
}
function AppNavigator() {
return (
<NavigationContainer>
<Stack.Navigator initialRouteName="Screen1">
<Stack.Screen
name="Screen1"
component={Screen1}
options={{headerShown: false}}
/>
<Stack.Screen
name="Screen2"
component={Screen2}
options={{
headerBackTitleVisible: false,
title: '',
headerTintColor: '#fff',
headerStyle: {
backgroundColor: colors.blue,
shadowColor: 'transparent',
},
headerBackImage: <MyCustomHeaderBackImage/>,
/>
</Stack.Navigator>
</NavigationContainer>
);
}
export default AppNavigator;
使用此代码,当我访问时Screen2
,它会失败并显示消息backImage is not a function
我尝试了哪些其他选择:
- 将代码更改为:
headerBackImage: () => (<MyCustomHeaderBackImage/>)
. 这失败并显示消息Invariant violation: Element type is invalid: expected a string but got: object
- 使用
<Image />
代替MyCustomHeaderBackImage
并尝试不同类型的调用,例如headerBackImage: () => (<Image source={require('../../../res/images/email.png')} />)
- 遵循https://github.com/react-navigation/react-navigation/blob/2c7187b22aeff1cdec5ca6aeebb40c9c798c0888/examples/NavigationPlayground/js/StackWithCustomHeaderBackImage.js的确切实施- 只是我使用
options
的而不是navigationOptions
,因为我使用的是 react-navigation 5 .xx
不幸的是,上述方法都没有奏效。关于如何为后退按钮使用自定义图像的任何想法?