Nat*_*Geo 9 reactjs eslint airbnb-js-styleguide
const propTypes = {
label: PropTypes.string,
};
const defaultProps = {};
Run Code Online (Sandbox Code Playgroud)
为什么 ESLint 在不需要时要我们为 label 提供默认值?
(react/require-default-props)
我正在扩展airbnb
我得出的结论是,当您可以使用 ES6 默认值时,定义组件没有任何有意义的好处。defaultProps
我发现的唯一好处(来自文档):
与代码中的自定义默认逻辑相比,defaultProps 的优点之一是,defaultProps 在 PropTypes 类型检查发生之前由 React 解析,因此类型检查也适用于您的 defaultProps。对于无状态函数组件也是如此:默认函数参数的行为与 defaultProps 不同,因此仍然首选使用 defaultProps。
因此,有一些预期的好处,但我认为实现的冗长和所需的时间defaultProps使它们不值得,除非您确实需要此功能。
例外情况:
我们确实对一些组件进行了例外和定义OurComponent.defaultProps,但即便如此,我们也是有选择地这样做。我们只在原本使用 ES6 默认值的地方定义它们。我们不会为每个非必需的 prop 定义默认值。
值得注意的是,相关规则并未包含在eslint-plugin-react “推荐”配置中。
小智 3
我有同样的问题。我用这个作为解决方案。
const propTypes = {
lable: PropTypes.string,
};
const defaultProps = {
lable: '',
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10454 次 |
| 最近记录: |