Я пытаюсь реализовать собственное представление в native-native, но имею некоторые проблемы с реквизитами.
У меня есть класс CustomView
, расширяющий android.view.View
и его ViewManager
расширение com.facebook.react.uimanager.SimpleViewManager
.
Связывание с React выполняется следующим образом:
'use strict';
var { requireNativeComponent, PropTypes } = require('react-native');
var iface = {
name: 'CustomView',
propTypes: {
myProp: PropTypes.string
},
};
module.exports = requireNativeComponent('CustomView', iface);
Когда я использую его в своем приложении React, он выдает сообщение об ошибке:
`CustomView` has no propType for native prop `CustomView.renderToHardwareTextureAndroid` of native type `boolean`
Это связано с тем, что SimpleViewManager
определил некоторое стандартное свойство, например:
@ReactProp(name = PROP_BACKGROUND_COLOR, defaultInt = Color.TRANSPARENT, customType = "Color")
public void setBackgroundColor(T view, int backgroundColor) {
view.setBackgroundColor(backgroundColor);
}
Я могу исправить это, просто объявив каждое свойство в моем объекте iface.
Я не хочу перечислять вручную все реквизиты, есть ли способ разместить все эти реквизиты в моем iface, не зная их?
Что-то вроде:
var {standardViewProps} = require('react-native');
var iface = {
name: 'CustomView',
propTypes: {
...standardViewProps,
myProp: PropTypes.string
}
}