【发布时间】:2021-09-07 12:32:01
【问题描述】:
在样式化组件中引用另一个组件时出现此错误
ReferenceError: 在初始化之前无法访问“SiteHeader”
这里是代码
//Common.ts
import styled from 'styled-components/macro';
import { SiteHeader } from '../Theme/Layout/Header';
export const Container = styled.div`
padding: 0 15px;
${SiteHeader} & {
padding-top: 20px;
padding-bottom: 20px;
}
`;
//header.tsx
import { Container } from '../../Styles/Common';
import styled from 'styled-components/macro';
export default function Header(): JSX.Element {
return (
<SiteHeader>
<Container>
{/*navigation*/}
</Container>
</SiteHeader>
);
}
export const SiteHeader = styled.header`
background: var(--green-kelp);
`;
【问题讨论】:
-
我在扩展不同文件中定义的组件时经常看到这个错误。我认为 Styled Components 应该允许它,但它们目前不允许。作为替代方法可能围绕他们的 ThemeProvider 功能构建?
标签: javascript reactjs styled-components craco