#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.