我正在尝试编写一个本机模块来包装iOS组件.
从我的 – (UIView *)视图方法中,我希望能够访问提供给我的组件的道具.
从我的 – (UIView *)视图方法中,我希望能够访问提供给我的组件的道具.
我似乎无法找到任何办法.
我尝试过使用RCT_CUSTOM_VIEW_PROPERTY并在我的Obj-C代码中设置属性,但是在调用并渲染了我的 – (UIView *)视图方法之后,该属性似乎已经设置好了.
我需要这样做的原因是我试图从我的视图方法中渲染ApplePay按钮,我希望能够通过在我的组件上设置prop来更改按钮的类型.例如:
- (UIView *)view { PKPaymentButtonType type = [self.aPropOnMyObject isEqualToString:@"setup"] ? PKPaymentButtonTypeSetUp : PKPaymentButtonTypeBuy; return [PKPaymentButton buttonWithType:type style:PKPaymentButtonStyleWhiteOutline]; }
解决方法
您可以通过以下方式调用视图中的方法:
RCT_CUSTOM_VIEW_PROPERTY(aPropOnMyObject,NSString,PKPaymentButtonType) { // view is what you returned from `view` method,// json is the NString value from React-Native [view setButtonType:(json && json == "setup") ? PKPaymentButtonTypeSetUp : PKPaymentButtonTypeBuy]; } - (UIView *)view { return [PKPaymentButton style:PKPaymentButtonStyleWhiteOutline]; }