【发布时间】:2020-10-03 21:48:15
【问题描述】:
我对 styled-components 还很陌生,并尝试将样式提取/重构到单独的文件中。我有循环依赖的问题 - 可能是因为缺乏样式组件良好实践的经验。 情况是这样的:
// A.js
import { StyledA } from './styles';
export default () => (
<StyledA>
<SomeOtherComponent />
</StyledA>
);
// B.js
import { StyledA1 } from './styles';
export default () => (
<SomeWrapperComponent>
<StyledA1 />
</SomeWrapperComponent>
);
// styles.js
import styled from 'styled-components';
import A from './A.js';
export const StyledA = styled.div`...`;
export const StyledA1 = styled(A)`...`; // causes dependency circle error
我想要实现的是扩展 A 组件样式并保留它的子组件(对于文件 B.js)。
-
export const StyledA1 = styled(StyledA)不起作用,因为我丢失了组件A结构。 - ...并在
styles.js中导入A会因为导入A.js → styles.js → A.js而导致eslint“依赖周期”错误。
如何保持扩展组件的 HTML 结构并解决依赖周期问题?
【问题讨论】:
标签: javascript reactjs eslint styled-components circular-dependency