Почему реагирует родной, дает мне эту ошибку о моей функции? - PullRequest
0 голосов
/ 26 сентября 2019

enter image description here

На изображении есть ошибка.Я пытаюсь сделать приложение с услышанным меню справа.Я сделал много попыток, я почти преуспел в использовании реакции начальной загрузки, но на самом деле нет.Сейчас я пытаюсь использовать это всплывающее меню, с большим количеством ошибок.К счастью, я подошел к большинству тем, но понятия не имею, как решить этот вопрос.Я хочу, чтобы это меню открывало вторую страницу (экран), которую я создал, и называл ее Настройки.И мне бы хотелось, чтобы он открывал ссылку на сайт.Кто-нибудь знает, как решить эту ошибку?Это мой код: Главная страница:

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})
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...