如何在 React Navigation 中使用图标代替原来的后退按钮?
How to use an icon instead of the original back button in React Navigation?
我正在尝试在 React Navigation 的 header 中显示 FontAwesome 图标而不是默认的人字形图标。
我试图覆盖 screenOptions
中的 headerLeft
属性,但后退按钮一直显示,并且无法返回到上一屏幕。我只想保留原来的后退按钮行为(仅在嵌套屏幕上显示),但带有自定义图标。
我想到了这个(当然行不通):
const Stack = createStackNavigator();
const screenOptions = {
headerBackTitleVisible: false,
headerBackImageSource: () => (
<FontAwesomeIcon icon={faArrowAltCircleLeft} color="#fff" size={24} />
),
};
export const CategoriesStackNavigator = () => {
return (
<Stack.Navigator screenOptions={screenOptions}>
<Stack.Screen name={Routes.Categories} component={Categories} />
<Stack.Screen
name={Routes.Category}
component={Category}
options={({ route }) => ({ title: route.params.id })}
/>
<Stack.Screen
name={Routes.CategoryAbout}
component={CategoryAbout}
options={({ route }) => ({ title: route.params.category })}
/>
</Stack.Navigator>
);
};
文档在这个主题上有点不清楚,我在网上找不到很好的例子。任何帮助将不胜感激!
试试这个
const screenOptions = {
headerBackImage: () => (
<FontAwesomeIcon icon={faArrowAltCircleLeft} color="#fff" size={24} />
),
};
这里是松弛的demo
我正在尝试在 React Navigation 的 header 中显示 FontAwesome 图标而不是默认的人字形图标。
我试图覆盖 screenOptions
中的 headerLeft
属性,但后退按钮一直显示,并且无法返回到上一屏幕。我只想保留原来的后退按钮行为(仅在嵌套屏幕上显示),但带有自定义图标。
我想到了这个(当然行不通):
const Stack = createStackNavigator();
const screenOptions = {
headerBackTitleVisible: false,
headerBackImageSource: () => (
<FontAwesomeIcon icon={faArrowAltCircleLeft} color="#fff" size={24} />
),
};
export const CategoriesStackNavigator = () => {
return (
<Stack.Navigator screenOptions={screenOptions}>
<Stack.Screen name={Routes.Categories} component={Categories} />
<Stack.Screen
name={Routes.Category}
component={Category}
options={({ route }) => ({ title: route.params.id })}
/>
<Stack.Screen
name={Routes.CategoryAbout}
component={CategoryAbout}
options={({ route }) => ({ title: route.params.category })}
/>
</Stack.Navigator>
);
};
文档在这个主题上有点不清楚,我在网上找不到很好的例子。任何帮助将不胜感激!
试试这个
const screenOptions = {
headerBackImage: () => (
<FontAwesomeIcon icon={faArrowAltCircleLeft} color="#fff" size={24} />
),
};
这里是松弛的demo