Как проверить реквизиты с propTypes, имеющими defaultProps? - PullRequest
1 голос
/ 12 апреля 2019

Ранее, когда мы не использовали defaultProps, мы использовали для получения предупреждения в консоли, что этот реквизит не пропущен.Но после настройки подписи реквизита с помощью defaultProps мы не получаем никаких ошибок как таковых.Итак, как настроить оба, чтобы работать как положено?

/* Default Props */
MyApp.defaultProps = {
  data: {
    totalCount: 123
  },
  name: 'john doe'
};

/* Proptypes */
MyApp.proptypes = {
  data: {
    totalCount: Proptypes.number.isRequired
  },
  name: Proptypes.string.isRequired
};

Ответы [ 2 ]

0 голосов
/ 12 апреля 2019

Вы уже делаете это правильно, проблема, с которой вы сталкивались ранее, заключается в том, что когда компонент был инициализирован, у него были нулевые значения для его реквизитов, поэтому вы получаете предупреждение во время выполнения, ожидающее некоторые реквизиты с нулевым значением, реквизиты по умолчанию устанавливают это значение даже наначальный компонент монтирования.:)

0 голосов
/ 12 апреля 2019
import PropTypes from 'prop-types';

Вы должны использовать

class test { 
    static propTypes = { 
        optionalBool: PropTypes.bool,
        requiredProperty: PropTypes.number.isRequired
}}
...