2017-06-26 90 views
1

我有一个组件需要一个包含子组件的syling的属性。我想确保propTypes正确验证它的类型。我可以从React Native代码中得知它有一个ViewStylePropTypes模块,但是我似乎无法找到它在哪里/是否暴露。验证React Native中的样式属性类型

我想知道的是,在不重新发明轮子的情况下对此进行验证的正确方法是什么?

回答

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将展示当bordertextStyle属性定义的YellowBox警告。

注:这也将导致一个无效的样式属性渲染Text一个组件内出现时,经常Failed prop type supplied to Text...警告。 propTypes验证允许您的自定义组件同时验证这一点,为您提供更好的粒度。

+1

谢谢你,我真的很无聊,我没有想到这一点。 – Lee

+0

没问题,这个比较好藏! – G0dsquad

+0

@ G0dsquad是否仍然是有效的解决方案?我得到警告:View.propTypes已被弃用,并将在未来版本的ReactNative中被删除。使用ViewPropTypes代替.' dev控制台中的错误。 – Wojtek