const propTypes = {
label: PropTypes.string,
};
const defaultProps = {};
Почему ESLint хочет, чтобы мы предоставили значение по умолчанию для метки, когда это не требуется?
(react/require-default-props)
Я продлеваю airbnb
Цели ESLint - предоставить подключаемую утилиту линтинга для JavaScript, чтобы с легкостью поддерживать качество вашего кода. Говоря об этом, вы можете настроить его и отключить некоторые правила, чтобы не получать ошибок. Я бы посоветовал вам отключить response / require-default-prop. Например, когда член команды создает компонент, вы не будете знать, что с ним делать, если не увидите PropTypes, поэтому я рекомендую продолжать использовать PropTypes.
Обеспечивает стабильность и удобочитаемость вашего компонента.
Читая комментарии и ответы, я все еще не понимаю «почему»





У меня такая же проблема. Я использовал это как решение.
const propTypes = {
lable: PropTypes.string,
};
const defaultProps = {
lable: '',
};
Спасибо за потраченное время, однако вопрос заключался в том, зачем это нужно, а не как это исправить.
@NatGeo, может быть, это может помочь.
Рабочий пример ReactJS для устранения eslint(react/require-default-props):
const MyComponent extends React.Component {
...
}
MyComponent.defaultProps = {
el: '',
quantity: 0,
arr: [],
...
}
MyComponent.propTypes = {
el: PropTypes.string,
quantity: PropTypes.number,
arr: PropTypes.array,
...
}
export default MyComponent
Я пришел к выводу, что нет никакого преимущества значимый для определения defaultProps для компонента, когда вместо этого вы можете использовать значения по умолчанию ES6.
Единственное преимущество, которое я нашел (из документов):
One advantage of defaultProps over custom default logic in your code is that defaultProps are resolved by React before the PropTypes typechecking happens, so typechecking will also apply to your defaultProps. The same also holds true for stateless functional components: default function parameters do not behave the same as defaultProps and thus using defaultProps is still preferred.
Таким образом, есть некоторые предполагаемые преимущества, но я думаю, что многословность и время, необходимое для реализации defaultProps, делают их не стоящими, если вам действительно не нужна эта функциональность.
Исключения:
Есть несколько компонентов, для которых мы делаем исключения и определяем OurComponent.defaultProps, но даже в этом случае мы делаем это выборочно. Мы определяем их только там, где в противном случае использовали бы значения по умолчанию ES6. Мы не определяем значение по умолчанию для каждой необязательной опоры.
Стоит отметить, что соответствующее правило нет включено в «рекомендуемую» конфигурацию eslint-plugin-реагировать.