1

在高阶组件上找到了 PropTypes这个例子

基本上,他们将 propTypes 添加到组件中,然后在装饰器中返回它。请参阅下面的代码副本。

我知道 react strip PropTypes 的生产版本,但它会像下面这样从内部函数中剥离它吗?

function EnhanceButton(Component) {
    class _EnhancedButton extends React.Component {
        render() {
            return (
                <Component { ...this.props }>{this.props.children}</Component>
            );
        }
    }
    _EnhancedButton.propTypes = Component.propTypes;

    return _EnhancedButton;
}
4

2 回答 2

1

React 不会删除propTypes你的代码,它只是跳过propTypes生产中的验证。

如果要propTypes在生产中删除相关代码,可以使用babel-plugin-transform-react-remove-prop-types.

此外,您还可以使用babel-react-optimize它来做进一步的优化。

于 2017-03-21T11:36:57.497 回答
0

您可以在此处__DEV__的代码中看到,仅在为 true时才检查道具类型。propTypes在生产版本中不会从您的代码中删除,只是跳过检查以获得更好的性能。
在您的情况下,它也将被跳过。

于 2017-03-21T11:33:35.467 回答