ReactPropGroup 的示例

Example for ReactPropGroup

我正在为我的项目实现一个新的原生 UI 组件。出于某种原因,我需要使用一种方法同时设置 2 个属性。通过使用 ReactProp 我可以像这样只设置一个 属性:

@ReactProp(name = "mode")
public void setMode(PDFLayoutView view, int mode) {
    view.PDFSetView(mode);
}

但是如果我想设置例如 srcpassword 属性,我不能使用 ReactProp 注释。

@ReactProp(name = "src")
public void setMode(PDFLayoutView view, string src, string password) {
    view.setSrc(src, password);
}

我检查了 https://facebook.github.io/react-native/docs/native-components-android#imageview-example,发现 ReactPropGroup 注释可能对我有帮助。但是没有示例说明如何使用它。你能提供一个例子或其他解决方案来解决我的问题吗?

使用ReactPropGroup的用法

@ReactPropGroup(names = {"src","password"})
public void setMode(PDFLayoutView view, string src, string password) {
    view.setMode(src, password);
}

对参数使用条件语句的示例

@ReactPropGroup(names = {
    ViewProps.BORDER_RADIUS,
    ViewProps.BORDER_TOP_LEFT_RADIUS,
    ViewProps.BORDER_TOP_RIGHT_RADIUS,
    ViewProps.BORDER_BOTTOM_RIGHT_RADIUS,
    ViewProps.BORDER_BOTTOM_LEFT_RADIUS
}, defaultFloat = YogaConstants.UNDEFINED)
public void setBorderRadius(ReactEditText view, int index, float borderRadius) {
  if (!YogaConstants.isUndefined(borderRadius)) {
    borderRadius = PixelUtil.toPixelFromDIP(borderRadius);
  }

  if (index == 0) {
    view.setBorderRadius(borderRadius);
  } else {
    view.setBorderRadius(borderRadius, index - 1);
  }
}