Стандартный способ указания propTypes для функционального компонента - после тела функции:
const One = ({text}) => {
return <div>One says {text}</div>
};
One.propTypes = {
text: PropTypes.string.isRequired
};
export default One;
Я видел где-то альтернативный способ с атрибутом propTypes
, записанным внутри тела функции:
const One = ({text}) => {
One.propTypes = {
text: PropTypes.string.isRequired
};
return <div>One says {text}</div>
};
export default One;
На самом деле я предпочитаю второй, особенно если компонент имеет много строк, так что propTypes (часть контракта) визуально близок к объявлению. Но этот способ почти нигде не упоминается, и это заставляет меня задуматься:
Это действительный ES6 (для назначения свойств стрелочной функции внутри тела)? Я бы сказал, что это не так, потому что присвоение функции переменной One
еще не произошло ... но похоже, что это работает - пример ниже.
Есть ли в нем какие-либо недостаток?
const mifunc = (x,y) => {
mifunc.prop1 = 'hi';
return x+y;
}
console.log(mifunc(2,3));
console.log(mifunc.prop1);