【问题标题】:Can you combine propTypes with defaultProps?你能把 propTypes 和 defaultProps 结合起来吗?
【发布时间】:2017-07-17 13:27:38
【问题描述】:

我想知道您是否可以用不太冗长的方式编写以下代码:

class MyComponent extends Component {
  static propTypes = {
    foo: PropTypes.string.isRequired,
    bar: PropTypes.string,
  };
  static defaultProps = {
    bar: '',
  };

类似这样的:

class MyComponent extends Component {
  static propTypes = {
    foo: PropTypes.string.isRequired,
    bar: [PropTypes.string, ''],
  };

或者这个:

class MyComponent extends Component {
  static propTypes = {
    foo: PropTypes.string.isRequired,
    bar: PropTypes.string(''),
  };

【问题讨论】:

  • 为什么要将两者结合起来?两者都有自己不同的用例..
  • 所有可用选项都在 React 文档中进行了描述,所以如果那里没有描述并且你想建议新的语法,我建议联系 react-team。

标签: reactjs react-proptypes


【解决方案1】:

不,对于当前的实现,您不能。

开发/测试运行时需要 PropTypes (https://facebook.github.io/react/blog/2017/04/07/react-v15.5.0.html#migrating-from-react.proptypes),默认值将成为最终构建的一部分。

未来 React 团队计划将 PropTypes 与 React 包的其余部分分开。

如果他们有兴趣,您可以联系 React 团队提出这个建议。

【讨论】:

    猜你喜欢
    • 2019-05-26
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多