Я знаю, что мы можем расширять или добавлять стили к существующим компонентам с помощью стилевых компонентов, таких как Link
компонент react-router-dom
. Указанная функция обозначена здесь . Но моя проблема в том, как я могу объединить два или более существующих компонента, а затем добавить еще несколько стилей?
В моем случае у меня есть многократно используемый компонент для текстовых элементов, таких как span
, p
и a
со стандартным размером шрифта, весом шрифта и т. Д. В то же время я хочу использовать реакцию Компонент Link -router-dom. В настоящее время у меня есть что-то вроде этого:
import styled from 'styled-components';
import { Link } from 'react-router-dom';
import { TextElement } from '../common';
/*
Can I do something like this?
const MyLink = styled(Link, TextElement)`
margin: 10px 0;
`;
or this?
const MyLink = styled([Link, TextElement])`
margin: 10px 0;
`;
*/
const MyPage = props => (
<>
<MyLink to="/next-page" />
</>
);
Любое предложение будет оценено.
EDIT
Мой TextElement
компонент выглядит примерно так:
const Element = styled.span`
font-size: 13px;
font-weight: 500;
`;
// These styles are sample only. Actual styles depend on a "variant" prop.
// I did not show it here since it doesn't have to do with the question I'm asking.
export default ({ tag }) => (<Element as={tag} />);