2016-06-27 3 views
2

Im работает с проблемой с React Native module на iOS. Я написал модуль в Objective-C и использовал RCT_EXPORT_MODULE(@"tracker");, чтобы экспортировать модуль и выставить его в React Native. Однако, когда я распечатываю содержимое NativeModules, он не содержит модуль.Как зарегистрировать React Native module на iOS

import { NativeModules } from 'react-native'; 
console.log("Native modules:", NativeModules); 

Я также написал аналогичный модуль на Java (Android), и это работает отлично. Однако с помощью модулей Android я знаю, что вы должны зарегистрировать их в классе MainActivity. Я думаю, что я пропустил что-то подобное с iOS, но не могу найти его нигде в документации React Native.

Буду признателен, если кто-то сможет мне помочь.

ответ

2

Модуль iOS автоматически регистрируется. Мост делает это, запрашивая все классы, реализующие протокол RCTBridgeModule.

Если вы не видите свой модуль, это значит, что-то чего-то не хватает.

Одна из возможностей заключается в том, что ваш класс ObjC не скомпилирован как часть цели приложения. В этом случае открыть Xcode и проверить, что ваш {your_module}.m принадлежит цели вашего приложения.

Пример с F8Scrolling модуля из F8 sample app:

enter image description here

+0

Спасибо за ответ. Я только что нашел его и исправил :). Пришлось вручную добавить модуль в качестве библиотеки для проекта. Что в принципе одно и то же (я думаю?) –

+0

Да, действительно! Рад, что он работает сейчас. –

Смежные вопросы