#react-native #react-navigation #navigation-drawer
Вопрос:
Я вложил a Drawer Navigator
в a Stack Navigator
, он хорошо работает и открывается, когда я провожу по нему пальцем, я хочу поместить значок меню над ним, когда он нажат, ящик открывается. Каждый метод, который я пробовал, всегда заканчивается navigation can't be found
ошибкой.
Вот мой код:
export class App extends Component {
.....
function DrawerNav() {
return (
<Drawer.Navigator
drawerType="front"
initialRouteName="Main" drawerPosition="right">
<Drawer.Screen name="Main" component={MainScreen} />
<Drawer.Screen name="Wallet" component={WalletScreen} />
<Drawer.Screen name="Appointments" component={Appointments} />
</Drawer.Navigator>
);}
return (
<Provider store={store}>
<NavigationContainer>
<Stack.Navigator initialRouteName="Menu">
<Stack.Screen name="Menu" component={DrawerNav} />
<Stack.Screen name="Add" component={AddScreen} navigation={this.props.navigation}/>
<Stack.Screen name="Save" component={SaveScreen} navigation={this.props.navigation}/>
</Stack.Navigator>
</NavigationContainer>
</Provider>
)}}
Я хочу открывать и закрывать ящик, когда нажимаю на этот значок:
<MaterialIcons name='menu' size={28} onPress={??} />
Ответ №1:
<Имя MaterialIcons=размер «меню»={28} onPress={()=>this.props.navigation.openDrawer()} /<Имя MaterialIcons=размер «меню»={28} onPress={()=>>
Комментарии:
1. Хорошо, как я могу заставить это открыть ящик?
2. это функция в библиотеке навигации, которая отвечает за навигацию по ящикам
3. Ладно, извините за очень глупый вопрос. Где именно я должен поместить этот значок в свой код??
4. На том же экране, где вы хотите его открыть, убедитесь, что экран включен в навигацию по ящику.
5. <Имя ящика.экрана=»Основной» компонент={Основной экран} /> <Имя ящика.Экрана=»Основной» компонент={Основной экран} /><Имя ящика.экрана=»Кошелек» компонент={Экран настенного экрана} /> <Имя ящика.экрана=»Кошелек» компонент={Экран настенного экрана} /><Имя ящика.экрана=»Встречи» компонент={Встречи} /> у вас есть 3 экрана в drwaer, вы можете поместить значок в любом месте на этих экранах