如何从自定义反应本机模块的视图方法中访问道具

时间:2016-03-10 11:07:59

标签: ios react-native

我正在尝试编写一个本机模块来包装iOS组件。 在我的RCT_CUSTOM_VIEW_PROPERTY方法中,我希望能够访问提供给我的组件的道具。

我似乎无法找到任何办法。

我已尝试使用- (UIView *)view并在我的Obj-C代码中设置属性,但该属性似乎是在调用并呈现- (UIView *)view { PKPaymentButtonType type = [self.aPropOnMyObject isEqualToString:@"setup"] ? PKPaymentButtonTypeSetUp : PKPaymentButtonTypeBuy; return [PKPaymentButton buttonWithType:type style:PKPaymentButtonStyleWhiteOutline]; } 方法后设置的。

我需要这样做的原因是我试图从我的view方法中渲染ApplePay按钮,我希望能够通过在我的组件上设置prop来更改按钮的类型。 E.g:

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"simulation" ofType:@"mp4"]];

MPMoviePlayerViewController *moviePlayerViewController = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
[self presentMoviePlayerViewControllerAnimated:moviePlayerViewController];

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式在视图上调用方法:

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];
}