typescript - 如何从文件中导出样式组件?

标签 typescript styled-components

当我使用以下样式组件时

import styled from 'styled-components';

const CarouselContainer = () => {
    return styled.div`
        & .slick-prev, .slick-next {
            position: absolute;
            z-index: 1;
            top: 50%;
        }
        & .slick-prev::before, .slick-next::before {
            font-size: 35px;
        }
        & .slick-prev {
            left: 5%;
        }
        & .slick-next {
            right: 5%;
        }
        & .slick-slide {
            height: 371px;
            position: relative;
        }
        & .slick-slide img {
            height: 371px;
            object-fit: cover;
            object-position: 0 0;
        }
        @media all and (min-width: ${providedProps => providedProps.theme.minWidthMediumDevice}) {
            & .slick-slide {
                height: unset;
                position: unset;
            }

            & .slick-slide img {
                height: unset;
                object-fit: unset;
                object-position: unset;
            }
        }

        @media all and (min-width: ${providedProps => providedProps.theme.minWidthExtraLargeDevice}) {
            & .slick-slide {
                height: 557px;
                position: relative;
            }

            & .slick-slide img {
                height: 557px;
                object-fit: cover;
                object-position: 0 0;
            }
        }
    `;
};

export default CarouselContainer;

作为
import CarouselContainer from './CarouselContainer';
...
<CarouselContainer>
...
</CarouselContainer>

我收到错误
JSX element type
'StyledComponentClass<DetailedHTMLProps<HTMLAttributes<HTMLDivElement>,
HTMLDivElement>, any,
DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>>' is
not a constructor function for JSX elements.   Property 'render' is
missing...

我究竟做错了什么?

最佳答案

另一种选择是将其定义为:

import styled from 'styled-components';

const CarouselContainer = styled.div`
  // your styles
`;

const StyledComponent = styled.div`
  // your styles
`;

export { CarouselContainer, StyledComponent };
并使用它:
import { CarouselContainer, StyledComponent } from './CarouselContainer';
...
<CarouselContainer>
...
</CarouselContainer>

关于typescript - 如何从文件中导出样式组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52991728/

相关文章:

javascript - 根据 window.pageYOffset 更改样式组件样式

javascript - 根据样式组件中的父属性更改嵌套组件的样式?

css - 如何动态更改数组中显示的样式文本组件的属性?

css - 如何在不丢失父级高度的情况下将元素居中放置在 div 中?

node.js - 在node中构建项目时如何将.env和其他文件放在dist文件夹中?

angular - 非法使用过滤器 typescript

javascript - Typescript 如何从循环中调用和访问字典键

css - React 样式组件未显示在屏幕上

angular - 在 Ionic 3 中定义模型的正确方法

typescript - 我可以将 TypeScript 类型与 io-ts 一起使用吗?