Est-il acceptable de mettre des propTypes et des defaultProps comme des props statiques à L'intérieur de la classe React?

C'est la façon dont je le fais depuis un certain temps maintenant:

export default class AttachmentCreator extends Component {
  render() {
    return <div>
      <RaisedButton primary label="Add Attachment" />
    </div>
  }
}

AttachmentCreator.propTypes = {
  id: PropTypes.string,
};

Mais j'ai vu des gens le faire de cette façon:

export default class AttachmentCreator extends Component {
  static propTypes = {
    id: PropTypes.string,
  };

  render() {
    return <div>
      <RaisedButton primary label="Add Attachment" />
    </div>
  }
}
<!-En fait, j'ai vu des gens placer l'état initial en dehors du constructeur. Est-ce une bonne pratique? Cela m'ennuie, mais je me souviens d'une discussion quelque part où quelqu'un a dit que le réglage par défaut des accessoires comme un statique n'est pas une bonne idée - Je ne me souviens pas pourquoi.

28
demandé sur Bergi 2016-04-21 21:59:06

4 réponses

les propriétés non fonctionnelles ne sont pas actuellement supportées pour les classes es2015. c'est une proposition pour es2016. la deuxième méthode est beaucoup plus pratique, mais un plugin pour soutenir la syntaxe (theres un très commun de babel plugin pour ça