Не определено не является объектом (оценивает '_this.props.navigation.state.index') - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь изучить RN, используя этот шаблон и через этот учебник. Я создал этот проект с использованием response-native-cli, тогда как в учебнике это было сделано с помощью expo. Я написал точно такой же код, однако я не знаю, откуда он ломается. Интересно, должно ли это что-то делать с реактивной версией, мое приложение работает на 0.57.4, а в руководстве оно ниже версии:

{
 "react-native": "https://github.com/expo/react-native/archive/sdk-19.0.0.tar.gz"
}

Я попытался запустить приложение на RN 0.52, оно не сработало, мне интересно, какова реальная версия RN этой ссылки SDK, так что я могу попробовать это, может кто-нибудь, пожалуйста, предложите, спасибо !!

App.js

import React from 'react';
import { UIManager } from 'react-native';
import { ApolloProvider } from 'react-apollo';
import { ThemeProvider } from 'styled-components';

import { store, client } from './src/store';
import { colors } from './src/utils/constants';

import Welcome from './src/components/Welcome';
import HomeScreen from './src/screens/HomeScreen';
import AppNavigation from './src/navigations';

if (UIManager.setLayoutAnimationEnabledExperimental) {
  UIManager.setLayoutAnimationEnabledExperimental(true);
}

export default class App extends React.Component {
  render() {
    return (
      <ApolloProvider store={store} client={client}>
        <ThemeProvider theme={colors}>
         <AppNavigation />
        </ThemeProvider>
      </ApolloProvider>
    );
  }
}

navigations.js

import React, { Component } from 'react';
import { addNavigationHelpers, StackNavigator, TabNavigator } from 'react-navigation';
import { connect } from 'react-redux';

import HomeScreen from './screens/HomeScreen';

const AppMainNav = StackNavigator({
  Home: {
    screen: HomeScreen
  }
});

class AppNavigator extends Component {
  render() {
    const nav = addNavigationHelpers({
      dispatch: this.props.dispatch,
      nav: this.props.nav
    })
    return <AppMainNav navigation={nav} />;
  }
}

export default connect(state => ({
  nav: state.nav
}))(AppNavigator);

export const router = AppMainNav.router;

navigation.js

import { router } from '../navigations';



export default (state, action) => {
  const newState = router.getStateForAction(action, state);
  return newState || state;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...