React native headerRight menu не запускается

#react-native #react-native-android #react-native-navigation

#react-native #реагирующий-родной-android #реагирующее встроенное меню навигации

Вопрос:

У меня есть приложение react native, в котором я хотел бы поместить меню (3 точки) справа. Значок отображается, но при нажатии не срабатывает. Если я отодвину меню от панели навигации, оно будет запущено.

Вот НОВЫЙ код :

 import React, { Component } from 'react';

import {
  SafeAreaView,
  Animated,
  StyleSheet,
  Dimensions,
  ScrollView,
  AsyncStorage,
  Text,
  TouchableHighlight,
  FlatList, 
  Image, 
  ActivityIndicator, 
  TouchableOpacity,  
  Clipboard, 
} from "react-native";

import { Container, Content, View, Header, Left, Right, Button , Icon , Body, Title, Segment , Toast} from "native-base";

import Menu, { MenuItem, MenuDivider } from 'react-native-material-menu';

const MyHeaderMenuComponent = () => {
  const [showMenu, setShowMenu] = React.useState(true);

  return (
    <View style={{}}>
      <Menu
        visible={showMenu}
        onDismiss={() => setShowMenu(false)}
        anchor={
          <TouchableOpacity onPress={() => setShowMenu(true)}>
            <Icon style={{color:'#ffffff',fontSize:25,marginRight:5}} name="md-more"/>
          </TouchableOpacity>
        }>
        <Menu.Item onPress={() => {}} title="Item 1" />
        <Menu.Item onPress={() => {}} title="Item 2" />
        <Menu.Item onPress={() => {}} title="Item 3" />
      </Menu>
    </View>
  );
};

export default MyHeaderMenuComponent;
 

затем на главном экране:

 import MyHeaderMenuComponent from '../components/myHeaderMenuComponent'

    static navigationOptions = ({ navigation }) => {
        const {params} = navigation.state;
        const comingFrom = navigation.getParam('comingFrom');
        
        return {
            title: params amp;amp; params.title ? params.title : 'Raid Room',
            titleStyle: {
                color: '#ffffff',  
            },
            tintColor: '#ffffff',
            headerTintColor: '#ffffff',
            headerStyle: {
                backgroundColor: "#395faa"
            },
            headerTitleStyle: {
                color: '#ffffff'
            },
            headerRight: () => <MyHeaderMenuComponent />
        };  
    };
 

но теперь ничего не появляется…

Ответ №1:

 const CustomMenu = () => {
  const [showMenu, setShowMenu] = React.useState(false);

  return (
    <View style={{}}>
      <Menu
        visible={showMenu}
        onDismiss={() => setShowMenu(false)}
        anchor={
          <TouchableOpacity onPress={() => setShowMenu(true)}>
            <MaterialCommunityIcons
              name="earth"
              size={30}
              style={{ color: 'black' }}
            />
          </TouchableOpacity>
        }>
        <Menu.Item onPress={() => {}} title="Item 1" />
        <Menu.Item onPress={() => {}} title="Item 2" />
        <Divider />
        <Menu.Item onPress={() => {}} title="Item 3" />
      </Menu>
    </View>
  );
};
 

Можете ли вы попробовать это:

 headerRight: () => <CustomMenu /> 
 

Комментарии:

1. У меня не работает… Не удалось правильно интегрироваться с моим кодом…

2. можете ли вы поделиться кодом или с какой ошибкой вы столкнулись.