На изображении есть ошибка.Я пытаюсь сделать приложение с услышанным меню справа.Я сделал много попыток, я почти преуспел в использовании реакции начальной загрузки, но на самом деле нет.Сейчас я пытаюсь использовать это всплывающее меню, с большим количеством ошибок.К счастью, я подошел к большинству тем, но понятия не имею, как решить этот вопрос.Я хочу, чтобы это меню открывало вторую страницу (экран), которую я создал, и называл ее Настройки.И мне бы хотелось, чтобы он открывал ссылку на сайт.Кто-нибудь знает, как решить эту ошибку?Это мой код: Главная страница:
import React from 'react';
import {Text,View,Button,Icon} from 'react-native';
import PopupMenu from './popupmenu';
onPopupEvent = (eventName, index) => {
if (eventName !== 'itemSelected') return
if (index === 0) showSettins = () =>{this.props.navigation.navigate('Settings');}
else showSettins = () =>{this.props.navigation.navigate('Settings');}
}
export default class HomeScreen extends React.Component {
static navigationOptions = {
title: 'Home',
headerRight:(
<PopupMenu actions={['Settings']} onPress={this.onPopupEvent} />
),
};
render() {
const {navigate} = this.props.navigation;
return (
<View>
<Text>Home</Text>
</View>
);
}
}
Страница всплывающего меню:
import React, { Component} from 'react'
import PropTypes from 'prop-types'
import { View, UIManager, findNodeHandle, TouchableOpacity } from 'react-native'
import Icon from 'react-native-vector-icons/MaterialIcons'
const ICON_SIZE = 24
export default class PopupMenu extends Component {
static propTypes = {
// array of strings, will be list items of Menu
actions: PropTypes.arrayOf(PropTypes.string).isRequired,
onPress: PropTypes.func.isRequired
}
constructor (props) {
super(props)
this.state = {
icon: null
}
}
onError () {
console.log('Popup Error')
}
onPress = () => {
if (this.state.icon) {
UIManager.showPopupMenu(
findNodeHandle(this.state.icon),
this.props.actions,
this.onError,
this.props.onPress
)
}
}
render () {
return (
<View>
<TouchableOpacity onPress={this.onPress}>
<Icon
name='more-vert'
size={ICON_SIZE}
color={'grey'}
ref={this.onRef} />
</TouchableOpacity>
</View>
)
}
onRef = icon => {
if (!this.state.icon) {
this.setState({icon})
}
}
}