Мне удалось решить эту проблему, переместив navigationOptions
с экрана в Маршруты.Сейчас это выглядит так
const MainMenu = DrawerNavigator(
{
// Other screens here
Demo: {
screen: DemoScreen,
navigationOptions: {
title: 'Title',
drawerLabel: ({ tintColor, focused }) => {
const id = store.getState().field;
const valid = [1234, 2345];
if (!valid.includes(id)) {
return null;
}
return (
<MainMenuItem
textKey={TEXT}
iconName="cellphone-settings"
focused={focused}
tintColor={tintColor}
/>
);
}
}
},
},
{
drawerWidth: 250,
drawerPosition: 'left',
contentComponent: MenuDrawerContent,
contentOptions: drawerContentOptions
}
);
export const Routes = {
// Other routes here
Main: {
screen: MainMenu,
navigationOptions: {
gesturesEnabled: false
}
}
};
Я не уверен, что это лучший подход, но он работает.
У меня есть несколько предупреждений от эслинтов, которые я не знаю, какрешать.Это:
1. component definition is missing display name
2. 'focused' and 'tintColor' is missing in props validation
Оба предупреждения приведены в этой строке: drawerLabel: ({ tintColor, focused }) => {
.На данный момент я их проигнорировал, но кто-то знает, как их исправить для этого случая?