Как я могу предотвратить ответную нативную информацию об устройстве, вызывающую неоднозначность React в моей настройке?

У меня проблема с установкой react-native-device-info в существующий реактивный проект (созданный с использованием create-react-native-app а потом выталкиваешь)

Я бегу:

yarn add react-native-device-info yarn install react-native link react-native-device-info cd ios && pod install & cd ..

pod install устанавливает RNDeviceInfo, но также React как зависимость?

Тогда я бегу yarn ios как обычно.

MetroBundler не работает с:

`` `Это предупреждение вызвано объявлением @providesModule с одинаковым именем в двух разных файлах. Загрузка графа зависимостей, сделано. ошибка: сбой связывания: неоднозначное разрешение: модуль /Users/thomasclarke/dev/mobile-notifications-native/index.js пытается потребовать react-native, но есть несколько файлов, обеспечивающих этот модуль. Вы можете удалить или исправить их:

  • /Users/thomasclarke/dev/mobile-notifications-native/ios/Pods/React/package.json
  • /Users/thomasclarke/dev/mobile-notifications-native/node_modules/react-native/package.json`` `

Я поднял сообщение об ошибке, так как это явно неприемлемое поведение, но могу ли я обойти это с моей настройкой?

1 ответ

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

1) Начните с "чистого" (например, без react-native-device-info поведение). Перебравшись перед этим, я также обнаружил, что должен был очистить оба моих node_modules и мой ios/Pods каталоги для очистки устаревшего пакета React.

2) Обновите свой Podfile, чтобы связать его с React (вам также нужно будет добавить любые соответствующие подспецификации и отдельный модуль для Yoga)

Вот строки, которые нужно добавить в ваш подфайл: pod 'React', :path => '../node_modules/react-native', :subspecs => [ 'DevSupport', 'Core', 'RCTAnimation', 'RCTImage', 'RCTLinkingIOS', 'RCTSettings', 'RCTText' ] pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'

3) Тогда беги react-native link react-native-device-info

Это добавит ответную нативную информацию об устройстве в ваш Podfile (вместе с настройкой Android)

pod 'RNDeviceInfo', :path => '../node_modules/react-native-device-info'

4) Установите все как обычно: yarn install cd ios pod install

И теперь у вас должна быть работающая сборка!

Другие вопросы по тегам