【发布时间】:2021-09-12 07:59:11
【问题描述】:
我是样式化组件的新手。在我的 React 代码中,我有一些条件渲染来更改一些 CSS,具体取决于我是否使用以下代码滚动导航栏:
const [colorChange, setColorchange] = useState(false)
const changeNavbarColor = () => {
if (window.scrollY >= 80) {
setColorchange(true)
} else {
setColorchange(false)
}
}
window.addEventListener("scroll", changeNavbarColor)
<nav className={colorChange ? "navbar colorChange" : "navbar"}>content</nav>
我的问题是为此编写样式组件。
我的普通 CSS 看起来像这样:
.navbar {
/*styles...*/
}
.navbar.colorChange {
/*styles...*/
}
我首先用一些样式创建了以下内容:
const Navbar = styled.nav`
/*styles...*/
`
但是我如何共享导航栏和颜色变化共同的样式;我尝试将以下内容附加到 NavBar 样式的组件中:
const Navbar = styled.nav`
/*styles...*/
.colorChange{
/*styles...*/
}
`
然后在 React 中渲染组件时,如何转换这一行以使用样式化组件?
<nav className={colorChange ? "navbar colorChange" : "navbar"}>content</nav>
【问题讨论】: