код:
export default function RoundedLink({ url, text, className, target }) {
return (
<a
className={`${buttonCorners} ncss-btn-medium border-black ncss-brand pt2-sm pr5-sm pb2-sm pl5-sm ${className}`}
href={url}
rel="noopener"
target={target}
>
{text}
</a>
);
}
RoundedLink.defaultProps = {
className: '',
target: '_self',
};
RoundedLink.propTypes = {
url: string.isRequired,
text: string.isRequired,
className: string,
target: string,
};
Но когда я проверяю его, я получаю undefined
в className и target:
expect(RoundedLink({})).toMatchSnapshot();
...
<a
className="css-1by5joz ncss-btn-medium border-black ncss-brand pt2-sm pr5-sm pb2-sm pl5-sm undefined"
href={undefined}
rel="noopener"
target={undefined}
/>
Разве это не должно быть ошибкой, когда я пытаюсь создать его без необходимой пропы?
Почему реквизит по умолчанию не заполняется?
Мой единственный вывод заключается в том, что значения по умолчанию и типы пропов не работают, если вы не используете class
или createReactClass
для объявления своих компонентов.
https://reactjs.org/docs/react-without-es6.html#declaring-default-props