Подтвердить что ты не робот

Реагируйте собственный пользовательский вид, нет propType для родной опоры

Я пытаюсь реализовать собственное представление в 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
    }
}
4b9b3361

Ответ 1

EDIT 2017/06/02:

React Native 0.44 отказался от использования View.propTypes. Вместо этого выполните следующие действия:

import { ViewPropTypes } from "react-native";

/* later... */
propTypes: {
    ...ViewPropTypes,
    myProp: PropTypes.string
}

ПРЕДЫДУЩИЙ ОТВЕТ:

Абсолютно:

var View = React.View;

/* later... */
propTypes: {
    ...View.propTypes,
    myProp: PropTypes.string
}