我找到了这个例子高阶组件上的道具类型
基本上,他们将 propType 添加到组件中,然后再将其返回到装饰器中。请参阅下面的代码副本。
我知道反应的生产版本剥离了 PropType,但它会从如下所示的内部函数中剥离它吗?
function EnhanceButton(Component) {
class _EnhancedButton extends React.Component {
render() {
return (
<Component { ...this.props }>{this.props.children}</Component>
);
}
}
_EnhancedButton.propTypes = Component.propTypes;
return _EnhancedButton;
}
React 不会删除代码的propTypes
,它只是跳过生产中的propTypes
验证。
如果要删除生产propTypes
相关代码,可以使用 babel-plugin-transform-react-remove-prop-types
。
此外,您可以使用babel-react-optimize
进行进一步优化。
您可以在此处的代码中看到,仅当 __DEV__
为 true 时才检查道具类型。 propTypes
未从生产版本中的代码中删除,则只是跳过检查以获得更好的性能。
在您的情况下,它也将被跳过。