React-native, "Нативный модуль не может быть нулевым"

Я просто обновляю React-native с 0.28 до 0.30 и получаю эту ошибку:

Msgstr "Нативный модуль не может быть нулевым".

Кажется, проблема в линии/пакете:

var PushNotification = require('react-native-push-notification');

Screenshot

Ответы

Ответ 1

Жалобы с красным ящиком реагировать-native не могут найти символ <unkown> в PushNotificationIOS.js line 18.

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

Чтобы решить эту проблему, ваш Project Navigator → Target → General → Linked Frameworks and Libraries, убедитесь, что у somelib.a есть.

enter image description here

В вашем случае, пожалуйста, следуйте инструкциям по установке ios и соответствующему интерактивному документу

Ответ 2

Когда-нибудь, если у вас уже есть другой реактивный пакет, уже запущенный для другого приложения. Вы можете увидеть эту проблему.

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

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

Также, если это одно и то же приложение, и вы только что обновили его. Убедитесь, что он правильно связан. Если вы снова не вызвали реакцию на связь.

Ответ 3

В моем случае, запуск $ pod install внутри каталога /ios сделал свое дело!

Ответ 4

Я думаю, что это связано с тем, как экспортировать и импортировать ваши модули. Убедитесь, что каждый соответствующий

Если вы экспортируете свой модуль, как этот module.exports = moduleName; Вы должны импортировать с помощью var moduleName = require('moduleName');

Если вы экспортируете свой модуль с помощью export default moduleName; , Импортировать импортировать с помощью import ModuleName from './ModuleName;

Просмотрите весь ваш экспорт и импорт.

Ответ 5

удалить реагирующее-push-уведомление в node_modules

запустить npm install [email protected]

Ответ 6

Пожалуйста, используйте собственный пакет push-уведомлений ios для сообщества, а не для собственного.

https://github.com/react-native-community/react-native-push-notification-ios

Удалите проект RCTPushNotification из своих библиотек и попробуйте использовать push-уведомление ios-native-community. Вы должны следовать руководству. (Есть некоторые различия в xcode и линковке.)

Ответ 7

если это кому-то поможет. Ручная ссылка на библиотеку в node_modules/реакции-нативный/библиотеки /PushNotificationIOS/RCTPushNotification.xcodeproj для ios https://facebook.github.io/react-native/docs/linking-libraries-ios#manual-linking

это где ручное связывание относится к. не реагирует-родной-push-уведомление

Ответ 8

У моей проблемы были те же самые симптомы, но другая причина. У меня было два открытых проекта React Native в двух разных экземплярах Xcode. Мой пакет Metro все еще работал из проекта A и вызывал проблемы при запуске проекта B в симуляторе.

Исправление: закройте старое окно терминала, созданное Xcode, на котором запущен Metro Bundler, и перезапустите проект.

Ответ 9

Попробуйте команду

$pod install 

в YourProject/ios. Это сработало для меня.

Надеюсь, это поможет?