I have created a sample app using ReactNative. And I have used ReactNative Navigation for navigation (Stack Navigation). It has only 2 screens. Home and Detail screen. I was able to implement Stack navigation successfully. However I'm having issues adding an icon for header button in right side of header title. To add header button with icon I used a third party library called HeaderButtons. However when I render, it only shows the title not the icon. Please note that I have used expo to create reactnative project and icons from @expo/vector-icons.
thanks in advance, Yohan
// This is custom header component
import React, { Component } from "react";
import { Platform } from "react-native";
import { HeaderButton } from "react-navigation-header-buttons";
import { Ionicons } from "@expo/vector-icons/Ionicons";
const CustomHeaderButton = (props) => {
return (
<HeaderButton
{...props}
IconComponent={Ionicons}
iconSize={23}
color={Platform.OS === "android" ? "white" : "blue"}
/>
);
};
export default CustomHeaderButton;
// This is the root navigation
import React, { Component } from "react";
import {Button} from'react-native'
import { createStackNavigator } from "@react-navigation/stack";
// import screens
import HomeScreen from "../screens/HomeScreen";
import DetailScreen from "../screens/DetailScreen";
import { HeaderButtons, Item } from "react-navigation-header-buttons";
import {HeaderButton} from "../component/HeaderButton";
const Stack = createStackNavigator();
function StackNavigator() {
return (
<Stack.Navigator>
<Stack.Screen
name="Home"
component={HomeScreen}
options={{
headerRight: ()=>(
<HeaderButtons HeaderButtonComponent={HeaderButton}>
<Item
title="Header"
iconName="ios-search"
onPress={() => {
alert("Button clicked");
}}
/>
</HeaderButtons>
),
}}
/>
<Stack.Screen name="Detail" component={DetailScreen} />
</Stack.Navigator>
);
}
export default StackNavigator;