У меня есть встроенное приложение, в котором я использую модуль RNCAsyncStorage
npm для простого сохранения данных.Как бы то ни было, моя iOS
версия приложения поставляется с расширением общего ресурса, и этому расширению общего доступа необходим доступ к одной из моих сохраненных строк данных.
Короче говоря, я хочу использовать RNCAynscStorage
из swiftнативный код для получения данных, которые были сохранены из моего собственного нативного кода реакции.
Прежде чем даже попытаться реализовать модуль, я спросил RNC, и они ответили:
Это возможно, но требует некоторых знаний о том, как работают нативные модули в целом.Я не уверен, насколько это перспективно в отношении предстоящей работы по рефакторингу в React Native, но вот как вы могли бы получить к ней доступ сегодня:
// First, get the RNCAsyncStorage instance from the bridge
RNCAsyncStorage *asyncStorage = [bridge moduleForClass:[RNCAsyncStorage class]];
// Then call the getter:
[asyncStorage multiGet:@[@"count"]] callback:^(NSArray *response){
NSObject *count = response[0];
if ([count isKindOfClass:[NSError class]]) {
// Failed to get count
return;
}
// Use count here
}];
Однако, мое расширение написано наswift, и я не уверен, как это будет выглядеть при преобразовании в swift.
Сначала я следовал руководству, чтобы сделать модуль реагирующего моста доступным в быстром коде, вот как выглядит моя привязка:
Я также пытался преобразовать пример objecttive-C в seift, но, как вы можете видеть, это не работает. Я не уверен, что это потому, что модуль неправильно выставлен / импортирован, или просто, если быстрое преобразование неверно.но и bridge
, и RNCAsyncStorage
не разрешены.