如何将样式化组件作为属性添加到 TypeScript 中的另一个样式化组件?

Posted

技术标签:

【中文标题】如何将样式化组件作为属性添加到 TypeScript 中的另一个样式化组件?【英文标题】:How can I add a StyledComponent as a property to a another StyledComponent in TypeScript? 【发布时间】:2021-07-02 07:26:56 【问题描述】:

This is what I'm trying to do. It works just fine in javascript but not in TS

export const Container = styled.View`
    align-items: center;
`;

Container.Title = styled.Text`
    font-family: Poppins-Regular;
    color: #000000;
    font-size: 20px;
`;
Property 'Title' does not exist on type 'StyledComponent<typeof View, DefaultTheme, , never>'.

【问题讨论】:

你能在 CodeSandbox 中重现这个吗?更容易看到你到目前为止所做的事情并以这种方式提供帮助 【参考方案1】:

来自文档:

To prevent TypeScript errors on the css prop on arbitrary elements, install
@types/styled-components and add the following import once in your project:

import  from 'styled-components/cssprop'

所以尝试运行 npm install --save-dev @types/styled-components 并在某处添加该导入。

来源:https://styled-components.com/docs/api#usage-with-typescript

【讨论】:

谢谢,这解决了问题。我只需要将 import from 'styled-components/cssprop' 更改为 import * as types from 'styled-components/cssprop' 因为找不到模块 cssprop

以上是关于如何将样式化组件作为属性添加到 TypeScript 中的另一个样式化组件?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 CSS 添加到“不是第一个”呈现的样式化组件

如何将自定义样式添加到样式组件?

样式化的组件添加组件名称作为类名

antd 覆盖样式化组件

如何在材质 UI 的反应中使用排版作为样式化组件

将图像作为道具传递给 Next.js 中的样式化组件