我有一个父组件和一个子组件。我将子组件导入父组件,并在那里使用它。下面是子组件。
import styled from "styled-components";
const HeaderContainer = styled.h1``;
const Header = () => <HeaderContainer>This is Header</HeaderContainer>;
export default Header;
正如您所看到的,它是一个简单的组件,它所做的一切都是渲染文本。
父组件在下面。
import "./styles.css";
import Header from "./header";
import styled from "styled-components";
const Main = styled.div`
${Header} {
background-color: "red";
}
`;
export default function App() {
return (
<Main className="App">
<Header />
</Main>
);
}
我正在导入标题并在jsx中使用它。我想要的是从父组件设置标题组件的样式。我尝试了以下使用样式化组件的样式,但不知何故它不起作用。
const Main = styled.div`
${Header} {
background-color: "red";
}
`;
这是代码沙盒。
https://codesandbox.io/s/dreamy-brown-w3bbs?file=/src/app.js:0-277
我如何才能使这项工作,或者如果你有更好的想法,请分享。
2条答案
按热度按时间unguejic1#
希望我是按照你想做的,但在你的主要风格中,你可以只针对h1的标题?
或者,如果您不想以所有h1为目标,然后将类名添加到头中,我在这里添加了几种方法:https://codesandbox.io/s/clever-stallman-bdwfk?file=/src/app.js
sg3maiej2#
在您的代码中,您尝试设置标题样式的部分是错误的。相反,您可以而且应该尝试的是:
内联样式:
外部css
可以为组件中的元素指定类名,并在父文件中设置它们的样式,如下所示
css文件,我们将其命名为style.css
子组件
然后,您可以在父文件中导入这两个组件,您将看到子组件现在已经设置了样式。
父组件