Импортируясь из реагирования-навигации, и у меня есть ошибка для этого - PullRequest
0 голосов
/ 02 апреля 2019

Я установил реакционную версию последней версии и создал проект 0.58.0.Я установил реактивную навигацию с 'npm install --save react-navigation', и у меня появляется ошибка

Это ошибка

Загрузка графика зависимостей завершена.ошибка: сбой связывания: ошибка: невозможно разрешить модуль react-native-gesture-handler из C:\Users\Zarzu Victor\AwesomeProject\node_modules\@react-navigation\native\src\Scrollables.js: модуль react-native-gesture-handler не существует на карте модулей ускорения

Это может быть связано с https://github.com/facebook/react-native/issues/4968 для разрешенияПопробуйте следующее: 1. Очистите часы сторожа: watchman watch-del-all.2. Удалите папку node_modules: rm -rf node_modules && npm install.3. Сбросить кеш Metro Bundler: rm -rf /tmp/metro-bundler-cache-* или npm start -- --reset-cache.4. Удалите кэш скорости: rm -rf /tmp/haste-map-react-native-packager-*.в ModuleResolver.resolveDependency (C: \ Users \ Zarzu Victor \ AwesomeProject \ node_modules \ metro \ src \ node-haste \ DependencyGraph \ ModuleResolution.js: 183: 15) в ResolutionRequest.resolveDependency (C: \ Users \ Zarzu Victor Awesnode_modules \ metro \ src \ node-haste \ DependencyGraph \ ResolutionRequest.js: 52: 18) в DependencyGraph.resolveDependency (C: \ Users \ Zarzu Victor \ AwesomeProject \ node_modules \ metro \ src \ node-haste \ DependencyGraph.js: 27: 16) в Object.resolve (C: \ Users \ Zarzu Victor \ AwesomeProject \ node_modules \ metro \ src \ lib \ transformHelpers.js: 261: 42) в dependencies.map.result (C: \ Users \ Zarzu Victor \ AwesomeProject\ node_modules \ metro \ src \ DeltaBundler \ traverseDependencies.js: 391: 31) в Array.map () в resolDependencies (C: \ Users \ Zarzu Victor \ AwesomeProject \ node_modules \ metro \ src \ DeltaBundler \ traverseDependencies.js:18) в C: \ Users \ Zarzu Victor \ AwesomeProject \ node_modules \ metro \ src \ DeltaBundler \ traverseDependencies.js: 261: 33 в Generator.next () в asyncGeneratorStep (C: \ Users \ Zarzu Victor \ AwesomeProject \ node_modules \ metro \ src \ DeltaBundler \ traverseDependencies.js: 87: 24) DELTA [android, dev] ...... / index.js ▓▓▓▓▓▓▓▓▓▓▓▓▓▓.6 98,6% (591/666), сбой.

:: ffff: 127.0.0.1 - - [02 / Apr / 2019: 18: 13: 46 +0000] "GET /index.delta?platform= android & dev = true & minify = false HTTP / 1.1 "500 -" - "" okhttp / 3.12.1 "

'''
import React from 'react';
import { Text, View } from 'react-native';
import { createBottomTabNavigator, createAppContainer } from 'react-navigation';

class HomeScreen extends React.Component {
  render() {
    return (
      <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
        <Text>Home!</Text>
      </View>
    );
  }
}

class SettingsScreen extends React.Component {
  render() {
    return (
      <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
        <Text>Settings!</Text>
      </View>
    );
  }
}

const TabNavigator = createBottomTabNavigator({
  Home: HomeScreen,
  Settings: SettingsScreen,
});

export default createAppContainer(TabNavigator);
'''

Ответы [ 2 ]

2 голосов
/ 02 апреля 2019

Вам нужно отдельно установить response-native-жест-обработчик npm.Они создают отдельный пакет npm для обработки и распознавания касаний и жестов.

Шаг 1.

npm i react-native-gesture-handler

Шаг 2.

react-native link react-native-gesture-handler

Шаг 3. (необязательно)

Если шаг 2 не работает должным образом, код не настроен должным образом, поэтому мы вручную настраиваем его, используя шаг 3

Чтобы завершить установку обработчика реагировать на родные жесты для Android, убедитесь, чточтобы внести необходимые изменения в MainActivity.java:

import com.facebook.react.ReactActivity; 
+ import com.facebook.react.ReactActivityDelegate; 
+ import com.facebook.react.ReactRootView; + import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView; 
public class MainActivity extends ReactActivity { 
@Override 
protected String getMainComponentName() { return "Example"; } + 
@Override 
+ protected ReactActivityDelegate createReactActivityDelegate() { 
+ return new ReactActivityDelegate(this, getMainComponentName()) { 
+ @Override + protected ReactRootView createRootView() { 
+ return new RNGestureHandlerEnabledRootView(MainActivity.this); 
+ } 
+ }; 
+ } }

Никаких дополнительных шагов для iOS не требуется.

Пожалуйста, обратитесь к следующему документу для получения дополнительной информации: -

https://reactnavigation.org/docs/en/getting-started.html#installation

https://www.npmjs.com/package/react-native-gesture-handler/v/1.0.0-alpha.34?activeTab=readme

https://kmagiera.github.io/react-native-gesture-handler/docs/getting-started.html

0 голосов
/ 03 апреля 2019

Пожалуйста, установите ручка реагирования-родного-жеста r npm

реакция-нативная ссылка реакция-нативный-жест-обработчик

И добавьте этот код в MainActivity, чтобы создать блок плавной навигации

@Override
protected ReactActivityDelegate createReactActivityDelegate() {
    return new ReactActivityDelegate(this, getMainComponentName()) {
        @Override
        protected ReactRootView createRootView() {
            return new RNGestureHandlerEnabledRootView(MainActivity.this);
        }
    };
}

OR

Пожалуйста, проверьте пример проекта здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...