#javascript #reactjs #styled-components
Вопрос:
Я пытаюсь оформить ссылку с помощью стилизованных компонентов. В зависимости от реквизита, он покажет a <button>
или a <Link>
. Я видел , что могу использовать эту функцию as
, но когда я это делаю, она не отображается href
в сгенерированной ссылке. У кого-нибудь есть решение?
const Button = styled.button`
...styles
`;
<Button href={props.url} as={props.url ? Link : "button"}>
{props.children}
</Button>
<Button>Button without url</Button>
<Button url="/">Button with url</Button>
Спасибо!
Ответ №1:
Это то, что вы можете сделать :
Если URL-адреса там нет, он останется кнопкой в качестве тега привязки
<Button href={props.url || # } as={props.url amp;amp; "a" }>
{props.children}
</Button>
Комментарии:
1. Да, но я хотел бы иметь маршрутизатор
<Link>
, а не<a>
тег2. Является ли Ссылка стилизованным компонентом или пользовательским от react-router?
3. Это основной из react-маршрутизатора
Ответ №2:
Я бы посоветовал вам использовать это для достижения того, чего вы хотите. Чем вы можете просто написать это :
<Box as={props.url? Link : Button} to={props.url}>About</Box>
Ответ №3:
Спасибо за ваши ответы, я сделал это решение, и оно работает сейчас:
<Container as={props.url amp;amp; Link} to={props.url} href={props.ext amp;amp; props.url}>
{props.children}
</Container>