Как я могу исправить "OnPress не работает внутри заголовка, но работает независимо" - PullRequest
0 голосов
/ 13 апреля 2019

Я новичок, чтобы реагировать на родных. Я использую реагировать нативные элементы и реагировать нативные векторные иконки. У меня внутри заголовка Icon.Button, у меня трудное время, чтобы заставить его работать. Однако, когда я использую компонент сам по себе, он работает как положено

это мой ButtonTest.tsx

import React, { Component } from "react";
import { Button, StyleSheet, Text, View, Alert } from "react-native";
import Icon from "react-native-vector-icons/FontAwesome";

export default class ButtonTest extends Component {
  onPress = () => {
    console.log("Button was pressed");
    Alert.alert("Button was pressed");
  };

  render() {
    return (
      <View>
        <Icon.Button
          name="rocket"
          size={30}
          color="#FFFF"
          onPress={this.onPress}
        />
      </View>
    );
  }
}

Это работает, как ожидалось.

однако, когда я использую ту же логику в моем AppHeader.tsx, она просто не работает

AppHeader.tsx

import { Header } from "react-native-elements";
import React, { Component } from "react";
import { View, Alert, StyleSheet } from "react-native";
import Icon from "react-native-vector-icons/FontAwesome";

const AppHeader = () => {
  return (
    <View>
      <Header
        placement="left"
        leftComponent={{ icon: "menu", color: "#fff" }}
        centerComponent={{ text: "MY TITLE", style: { color: "#fff" } }}
        rightComponent={<Rocket />}
      />
      <Rocket />
    </View>
  );
};

class Rocket extends Component {
  onPress = () => {
    console.log("Button was pressed");
    Alert.alert("Button was pressed");
  };

  render() {
    return (
      <Icon.Button
        name="rocket"
        size={30}
        color="#FFFF"
        onPress={this.onPress}
      />
    );
  }
}

Заголовок приложения прекрасно загружается. Однако (на симуляторе), когда я пытаюсь щелкнуть по нему, ничего не происходит

но если я нажму на Компонент ButtonTest, он будет работать отлично. Я получаю console.log и предупреждение.

Пожалуйста, помогите

...