Как использовать стороннюю библиотеку в React Native Expo

avatar
Andrei V
8 августа 2021 в 16:19
293
1
0

Я полный нуб в RN и Expo. Я создал новый проект expo init test, затем cd test, затем npm install --save react-native-ble-plx и начал выставку npm start.
В моем коде я добавил следующие строки:

import { BleManager } from 'react-native-ble-plx';
export const manager = new BleManager();
manager.onStateChange(onStateChange);

Когда я пытаюсь запустить его из эмулятора ios/android или из Интернета, я получаю сообщение об ошибке:

Native module cannot be null.

Итак, можно ли запустить собственный модуль типа react-native-ble-plx в Expo? Если да, то что я делаю не так?

Источник

Ответы (1)

avatar
Mohaimin
8 августа 2021 в 16:26
2

Вам необходимо извлечь проект выставки, чтобы иметь возможность использовать эту библиотеку.

Источник

Andrei V
8 августа 2021 в 17:07
0

Спасибо. И после извлечения я могу запустить его из Expo или мне нужно запускать каждый ios/android с помощью XCode или ADS?

Mohaimin
8 августа 2021 в 17:20
0

Не думайте, что вы можете, после извлечения вы самостоятельно обрабатываете каждую сборку платформы ОС. Дополнительная информация о настройке: reactnative.dev/docs/environment-setup

Andrei V
8 августа 2021 в 17:23
0

ой. Тогда какой смысл в RN, если одна внешняя библиотека сбивает вас с толку?

Mohaimin
8 августа 2021 в 17:30
0

Expo предназначена для создания прототипов, с ней очень легко начать и поэкспериментировать. Приложения, созданные на выставке, тоже огромны. Но если вы хотите создать серьезное/производственное приложение, лучше всего и рекомендуется использовать для этого собственный cli. Там у вас будет весь необходимый доступ к низкоуровневым API и гораздо больше настроек.

Andrei V
8 августа 2021 в 17:34
0

Извините, я запутался :), но вся привлекательность RN заключается в том, что он разрабатывается на JS, а затем портируется в нативные коды. Тогда зачем возиться с RN, если мне нужно разрабатывать нативные коды (swift и Java)?

Andrei V
8 августа 2021 в 17:53
0

Мохаймин, просто поясню. После извлечения приложения я продолжаю разработку в Swift и Java ИЛИ я все еще могу разрабатывать в JS, но когда я развертываю свои приложения, я должен делать это из собственных кодов? Еще раз спасибо.

Mohaimin
8 августа 2021 в 18:06
0

О, ха-ха, нет, вам не придется кодировать на Swift или Java (вы можете, но вам нужно в 99% случаев). Просто у вас будет больше контроля над библиотеками и процессом сборки приложения при извлечении. Вы можете прочитать ссылку, которую я разместил ранее на Ejecting.

bombillazo
18 октября 2021 в 20:15
0

@AndreiV не путайте Экспо с РН. Вы можете удалить проект из Expo и продолжить использовать RN (JS или TypeScript) без необходимости входить в нативную кодовую базу. Однако вы потеряете многие управляемые функции, предоставляемые Expo CLI, и вам придется вручную создавать и запускать проект RN.