React PropTypes: должен быть предоставлен хотя бы один из этих реквизитов - PullRequest
0 голосов
/ 18 февраля 2019

Предположим, у моего Компонента есть 2 реквизита.

Ни один из них не требуется, как таковой , и вы можете предоставить оба, если хотите.Но вы должны предоставить по крайней мере один из двух реквизитов.

Поддерживает ли PropTypes это правило проверки?

Что если это строгий XOR?


ПримечаниеЯ не говорю о том, чтобы разрешить один из двух типов для известных реквизитов ... о чем я понимаю PropTypes.oneOf(['News', 'Photos']) и PropTypes.oneOfType([...types...]).

1 Ответ

0 голосов
/ 18 февраля 2019

PropTypes позволяют предоставлять настраиваемую проверку, где вы можете написать свою собственную логику и собственную ошибку, например

MyComponent.propTypes = {
  News: (props, propName, componentName) => {
    if (!props.News && !props.Photos) {
      return new Error(`One among News or Photos prop must be provided`);
    }
  },

  Photos: (props, propName, componentName) => {
    if (!props.News && !props.Photos) {
      return new Error(`One among News or Photos prop must be provided`);
    }
  },
}

Вы можете добавить дополнительную логику, чтобы указать, какой тип реквизита для каждого из них

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...