Неопределенный объект с RnGestureHandler при использовании нативной навигации

Я пытаюсь реализовать нативную навигацию в существующем приложении, которое (пока) его не использует.

Я следую этому ответу.

Поскольку у меня уже есть настройка приложения, мне нужно немного адаптировать его процедуру. Моя точка входа:

//index.js
import {AppRegistry} from 'react-native';
import {createAppContainer, createStackNavigator} from 'react-navigation';
import {name as appName} from './app.json';
import {Config} from './navigation/config'
import App2 from "./navigation/App2";
import BarCodeReader from "./navigation/BarCodeReader";

export const AppNavigator = StackNavigator(Config.navigation);

//I've also tried this instead, similar error:
//export const AppNavigator = createStackNavigator(Config.navigation);

AppRegistry.registerComponent('appName', ()=>AppNavigator);

Строка AppNavigator ...., похоже, вызывает ошибку, судя по красному экрану смерти на моем телефоне, когда я запускаю его. Это последняя строка моего кода, которая упоминается на красном экране смерти.

Моя маршрутизация:

//config.js
import App2 from './App2'
import BarCodeReader from './BarCodeReader'

export const Config = {
  navigation: {
    App2: {
      screen: App2
    },
    BarCodeReader: {
      screen: BarCodeReader
    }
  }
};

Моя альтернативная страница для загрузки (например, app2 - я просто пытаюсь максимально упростить ее, чтобы изолировать ошибку и не допустить, чтобы мой фактический код вызывал неожиданные ошибки...)

//app2.js
import React, {Component} from 'react';
import {Text, View} from 'react-native';

export default class App2 extends Component {
  constructor(props){
    super(props);
  }

  render() {
      return (
        <View>
          <Text>          Showing stuff from app2
          </Text>
        </View>);
  }
}

Когда я запускаю его, на консоли (webstorm) я получаю:

D/ReactNative( 1044): CatalystInstanceImpl.runJSBundle()
D/ReactNative( 1044): ReactInstanceManager.setupReactContext()
D/ReactNative( 1044): CatalystInstanceImpl.initialize()
D/ReactNative( 1044): ReactInstanceManager.attachRootViewToInstance()
W/ReactNativeJS( 1044): Require cycle: node_modules/react-native-gesture-handler/index.js -> node_modules/react-native-gesture-handler/Swipeable.js -> node_modules/react-native-gesture-handler/index.js
W/ReactNativeJS( 1044): 
W/ReactNativeJS( 1044): Require cycles are allowed, but can result in 

uninitialized values. Consider refactoring to remove the need for a cycle.
W/ReactNativeJS( 1044): Require cycle: node_modules/react-native-gesture-handler/index.js -> node_modules/react-native-gesture-handler/DrawerLayout.js -> node_modules/react-native-gesture-handler/index.js
W/ReactNativeJS( 1044): 
W/ReactNativeJS( 1044): Require cycles are allowed, but can result in uninitialized values. Consider refactoring to remove the need for a cycle.
E/ReactNativeJS( 1044): undefined is not an object (evaluating 'RNGestureHandlerModule.State')
E/ReactNativeJS( 1044): Module AppRegistry is not a registered callable module (calling runApplication)

Это из-за цикла, о котором идет речь? В чем проблема, если так? Если нет, в чем моя проблема?


person LogicOnAbstractions    schedule 21.11.2018    source источник


Ответы (1)


Это может быть полезно:

я столкнулся с проблемой -

undefined is not an object (evaluating 'RNGestureHandlerModule.State')

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

в моем случае я сделал от ^3.0.4 до ^2.18.0

person Ragu    schedule 08.12.2018