ReactPropGroup 的示例
Example for ReactPropGroup
我正在为我的项目实现一个新的原生 UI 组件。出于某种原因,我需要使用一种方法同时设置 2 个属性。通过使用 ReactProp
我可以像这样只设置一个 属性:
@ReactProp(name = "mode")
public void setMode(PDFLayoutView view, int mode) {
view.PDFSetView(mode);
}
但是如果我想设置例如 src
和 password
属性,我不能使用 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);
}
}
我正在为我的项目实现一个新的原生 UI 组件。出于某种原因,我需要使用一种方法同时设置 2 个属性。通过使用 ReactProp
我可以像这样只设置一个 属性:
@ReactProp(name = "mode")
public void setMode(PDFLayoutView view, int mode) {
view.PDFSetView(mode);
}
但是如果我想设置例如 src
和 password
属性,我不能使用 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);
}
}