Проверить тип свойства Style в React Native

У меня есть компонент, который принимает свойство, содержащее syling для подкомпонента. Я хотел бы убедиться, что propTypes правильно проверяет свой тип. Я могу из кода React Native, что он имеет ViewStylePropTypes, который обеспечивает это, однако я не могу найти, где/если он выставлен.

Что я хочу знать, так это то, как правильно проверить это, не изобретая велосипед?


person Opal    schedule 26.06.2017    source источник
comment


Ответы (1)


Чтобы применить ограничения стиля для PropTypes, просто используйте следующее, в зависимости от того, какой тип компонента вы визуализируете:

MyComponent.propTypes = {
  /**
  * Style to be applied to the containing <View>
  */
  buttonStyle: View.propTypes.style,
  /**
  * Style to be applied to the inner <Text>
  */
  textStyle: Text.propTypes.style
}

Например, Text.propTypes.style покажет предупреждение YellowBox, когда border определено в свойстве textStyle.

Примечание. Это также приведет к появлению обычного предупреждения Failed prop type supplied to Text..., которое появляется при рендеринге Text внутри компонента с недопустимым атрибутом стиля. Проверка propTypes позволяет вашему пользовательскому компоненту также проверять это одновременно, обеспечивая лучшую детализацию.

person G0dsquad    schedule 26.06.2017
comment
Спасибо за это, я чувствую себя действительно глупо, что не подумал об этом. - person Opal; 26.06.2017
comment
Нет проблем, этот относительно хорошо спрятан! - person G0dsquad; 26.06.2017
comment
@ G0dsquad G0dsquad это все еще актуальное решение? Я получаю ошибку Warning: View.propTypes has been deprecated and will be removed in a future version of ReactNative. Use ViewPropTypes instead. в консоли разработчика. - person Wojtek; 17.08.2017
comment
Вы пробовали переключиться на ViewPropTypes.* @Wojtek? - person G0dsquad; 07.09.2017