Я пытаюсь разработать собственный модуль для реагирования, и я не знаю, как работает Objective-C, поэтому я иду интуицией и попытками.
Итак, я знаю, что здесь мой баннер загружается и отображается в приложении. Это работает.
BannerView.m
@implementation BannerView
...
- (instancetype)initWithFrame:(CGRect)frame
{
if ((self = [super initWithFrame:frame])) {
[self.bannerUnit setAutoRefreshMillisWithTime:35000];
self.dfpView = [[DFPBannerView alloc] initWithAdSize:kGADAdSizeMediumRectangle];
...
self.dfpView.adUnitID = @"/6499/example/banner";
...
[self addSubview:self.dfpView];
}
return self;
}
И у меня есть этот метод, где находится мост RN-Objective-C
- (void)loadBanner
{
...
}
На loadBanner я могу получить мои свойства, например
<Banner adUnitID={'123'} // inside RN
_adUnitID // inside Objective-C
Проблема сейчас в том, что внутри initWithFrame , _adUnitID всегда равен нулю. Я попытался _adUnitID, self._adUnitID, self.adUnitID. Но все тот же.
NSLog(@"adUnitID %@", _adUnitID); // always null
[UPDATE]
Здесь я определяю adUnitID
BannerViewManager.m
RCT_EXPORT_MODULE();
...
RCT_EXPORT_VIEW_PROPERTY(adUnitID, NSString)
BannerView.h
@interface BannerView : RCTView <GADBannerViewDelegate>
...
@property (nonatomic, copy) NSString *adUnitID;
Итак, что я могу делать не так? Можно ли это сделать?