如何在操作后更改导航栏中的所有样式

How to change All Styles in Navbar after actions

这是我的组件。它工作得很好,但是。

我的样式有问题。 滚动后,导航栏设置状态并将 NavbarScroll 添加到导航栏。 我如何设置此组件中所有子树元素的样式。 我需要更改菜单组件中的每个元素和组件:

像这样将状态传递给菜单:

<Menu navbarState={this.state.Navbar} />

然后在菜单组件中说一个按钮:

<button className={props.navbarState} /> 

这会添加适当的 class 以便您可以在 css:

中进一步使用它
button.Navbar {
   styles for normal navbar
}

button.Navbar.NavbarScroll {
   styles for scrolled navbar
}

如果您的菜单不受控制组件启动为

,则此示例有效
const Menu = (props) => {
} 

如果是 class 像

class Menu extends React.Component

那么你应该在 props 之前添加这个:

<button className={this.props.navbarState} />