Я создаю приложение React Native, управляемое Expo, с помощью TypeScript и имею некоторые проблемы с React Navigation и TypeScript.
Я хочу указать значок для навигатора нижней вкладки в компоненте Tab.Screen.
Этот код работает, но жалуется, потому что route.params может быть неопределенным (строка 10).
Свойство 'icon' не существует для типа 'object'
Могу ли я сделать опору значка обязательной для initialParams?
Я безуспешно просмотрел документацию.
const App: React.FC<{}> = () => {
return (
<SafeAreaView style={styles.container}>
<NavigationContainer>
<Tab.Navigator
screenOptions={({ route }) => ({
tabBarIcon: ({ size, color }) => (
<MaterialIcons
size={size}
/* ===> */ name={route.params.icon}
color={color}
/>
),
})}
>
<Tab.Screen
name="EventListView"
initialParams={{ icon: 'view-agenda' }}
component={EventListScreen}
/>
<Tab.Screen
name="CreateEvent"
initialParams={{ icon: 'public' }}
component={SettingsScreen}
/>
</Tab.Navigator>
</NavigationContainer>
</SafeAreaView>
)
}