【发布时间】:2021-01-26 04:17:29
【问题描述】:
我有两个组件,为了简洁起见,我在这里简化了代码... 问题是,当我导入 ComponentB 以用作 ComponentA 的子级时,我似乎无法更改 ComponentB 的样式。
我正在使用样式化组件仅供参考。
示例:
在 ComponentA 中,我正在导入 ComponentB。 ComponentB 是一个独立的组件,它封装了自己的样式和逻辑。在 ComponentA 中使用时,我需要覆盖/扩展一些 ComponentB 样式。
这是一个代码示例:
// ComponentB
import React from "react";
import * as S from "./ComponentB.styles"; // styled components
export function ComponentB() {
return (
<S.Container>
<S.Content
{...props}
/>
</S.Container>
)
}
// ComponentA file
import React from "react";
import { ComponentB } from "./ComponentB";
import * as S from "./ComponentA.styles"; // styled components
export function ComponentA() {
return (
<S.Container>
<S.Content
<ComponentB {...props} /> // I need to use ComponentB but change its styling
/>
</S.Container>
)
}
如何将 ComponentB 用作 ComponentA 的子级,但要更改它的一些样式?
【问题讨论】:
-
这个答案的第一部分有帮助吗? stackoverflow.com/a/64599361/10431574 您需要使
ComponentB接受className和/或style属性并将其传递给 DOM。在S.Container或S.Content上?或者它应该接受像containerStyle和contentStyle这样的道具来做这两件事。
标签: javascript css reactjs styled-components