Как расширить стилизованные компоненты? - PullRequest
0 голосов
/ 24 октября 2018

У меня есть стилизованный компонент:

interface FlexContainerProps {
    children: any;
    className?: string;
}

function FlexContainer(props: FlexContainerProps) {
    const Container = styled.div`
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
    `;
    return (
        <Container className={props.className}>
            {props.children}
        </Container>
    );
}

Я хочу иметь возможность расширять его, когда использую его в компонентах.

Следующее не работает, поскольку класс "extended"имеет более низкую специфичность (или позже в коде).

const FlexContainerExtended = styled(FlexContainer)`
    flex-direction: column-reverse;
`;

Следующее работает, но является хакерским

const FlexContainerExtended = styled(FlexContainer)`
    flex-direction: column-reverse !important;
`;

Есть ли другой способ расширить стилизованные компоненты?

1 Ответ

0 голосов
/ 24 октября 2018

Почему вы хотите создать функцию?Вы можете просто сделать это так:

const FlexContainer = styled.div`
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
 `


 const FlexContainerExtended = styled(FlexContainer)`
     flex-direction: column-reverse;
 `; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...