Как насчет propTypes внутри функциональных компонентов? - PullRequest
1 голос
/ 25 мая 2020

Стандартный способ указания 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...