Попытка перейти к другому экрану на основе текстового щелчка, но возникла ошибка «undefined не является объектом (оценка navigate.navigateToScreen)» - PullRequest
0 голосов
/ 10 мая 2019

Я пытался перейти от текста к другому экрану, но появляется эта ошибка, может кто-нибудь, пожалуйста, помогите

Это тестовая таблица для более серьезной проблемы, которую я разместил здесь Навигация, когда нажатие на изображение не работает , я пытаюсь структурировать свой код для перехода от изображения к странице. Спасибо за помощь

import React from 'react';
import { AppRegistry, StyleSheet, View, Image, TouchableOpacity, Text } from "react-native";
import { createAppContainer, createStackNavigator, StackActions, NavigationActions } from 'react-navigation'; // Version can be specified in package.json
import AddDocScreen from './Menu/AddDocScreen'

export default class Mock extends React.Component {
  render() {
    const navigate = this.props.navigation

    return (
      <View style={styles.container}>
        <TouchableOpacity
          onPress={() => navigate.navigateToScreen(navigationAction)}>
          <View><Text>Click Me</Text></View>
        </TouchableOpacity>
      </View>
    )
  }
}

const navigationAction = NavigationActions.navigate({
  routeName: 'AddDocSreen',
})

function navigateToScreen(navigationAction) {
  () => {
    return navigationAction
  }
}

const doc = createStackNavigator({
  AddDocScreen: { screen: AddDocScreen },
});

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: 'rgba(215,215,215,1)',
    alignItems: 'center',
    justifyContent: 'center',
  },
})

1 Ответ

1 голос
/ 10 мая 2019

Используйте это так:

import React from 'react';
import { View, Text, TouchableOpacity } from 'react-native';
import { createStackNavigator, createAppContainer } from 'react-navigation';
import AddDocScreen from './Menu/AddDocScreen'

class Mock extends React.Component {
  render() {
    return (
      <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center',backgroundColor: 'rgba(215,215,215,1)'}}>
        <Text>Home Screen</Text>
        <TouchableOpacity onPress={() => this.props.navigation.navigate('Details')}>
          <View><Text>Click Me</Text></View>
        </TouchableOpacity>
      </View>
    );
  }
}

const RootStack = createStackNavigator(
  {
    Mock: Mock,
    AddDocScreen: AddDocScreen,
  {
    initialRouteName: 'Mock',
  }
);

const AppContainer = createAppContainer(RootStack);

export default class App extends React.Component {
  render() {
    return <AppContainer />;
  }
}
...