你能将propTypes与defaultProps结合起来吗?

时间:2017-07-17 13:27:39

标签: reactjs react-proptypes

我想知道你是否可以用更简洁的方式编写以下代码:

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(''),
  };

1 个答案:

答案 0 :(得分:1)

不,使用当前的实现,你不能。

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

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

如果他们感兴趣,您可以建议联系反应团队。