Выдает ошибку выхода реакции вместо предупреждения для неопределенных реквизитов, описанных как требуется в PropTypes

#reactjs

#reactjs

Вопрос:

У меня есть следующее определение моего компонента:

 import React, { PureComponent } from 'react'
import PropTypes from 'prop-types';

class MyElement extends PureComponent {

    static propTypes = {
        myField: PropTypes.object.isRequired,
        //...
    };


    render() {...}
}

export default MyElement
  

Проблема в том, что в итоге я получаю предупреждение в консоли, в котором говорится, что

Предупреждение: Сбой типа реквизита: реквизит onChange помечен как требуемый в SimpleSelect , но его значение равно undefined .

Скорее, я хотел бы выдавать сообщение об ошибке React yield при выполнении npm start команды. Возможно ли это? Или я должен использовать совершенно другой подход для достижения этого?

Комментарии:

1. Я знаю, как это сделать только в тестах. Вы можете использовать ошибку jest-prop-type-error. Я надеюсь, что это было бы полезно.

2. Я считаю, что prop-types — это средство проверки типов во время выполнения. Возможно, вам захочется взглянуть на Flow или TypeScript, если вы хотите увидеть ошибки типа во время сборки.

Ответ №1:

 myfield:Proptypes.objectOf (function(propValue, key, componentName, location, propFullName) {
    if (!/matchme/.test(propValue[key])) {
      return new Error(
        'Invalid prop `'   propFullName   '` supplied to'  
        ' `'   componentName   '`. Validation failed.'
      );
    }
})
  

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