【发布时间】:2025-12-30 22:50:04
【问题描述】:
`class App extends React.Component {
constructor() {
super();
this.sideBarToggleHandler = this.sideBarToggleHandler.bind(this);
this.state = {
sideBarOpen: true,
backDropOpen: false,
isPrim: true,
}
}
componentDidMount() {
console.log('componentdidmount')
}
sideBarToggleHandler = () => {
this.setState((prevState) => {
return { sideBarOpen: !prevState.sideBarOpen }
})
this.setState((prevState) => {
return { backDropOpen: !prevState.backDropOpen }
})
}
changeTheme = () => {
this.setState((prevState) => {
return { isPrim: !prevState.isPrim }
})
}
render() {
let backDrop;
if (this.state.backDropOpen) {
backDrop = <SideDrop />
}
return (
<div className="App">
<SimpleBar style={{ height: '100vh' }}>
<ThemeSwitcher changeTheme={this.changeTheme} />
<ToggleBar sideBarToggleHandler={this.sideBarToggleHandler} />
{backDrop}
<SideBar sideBarOpen={this.state.sideBarOpen} />
<Switch>
<Route exact path='/' component={HomePage} />
<Route exact path='/about' render={() => <AboutPage isPrim={this.state.isPrim} />} />
<Route exact path='/resume' render={() => <ResumePage isPrim={this.state.isPrim} />} />
<Route exact path='/portfolio' component={PortfolioPage} />
<Route exact path='/blog' component={BlogPage} />
<Route exact path='/contact' component={ContactPage} />
</Switch>
</SimpleBar>
</div>
);
}
}`
我想根据状态对象更改我的网站的主题,但是当第一次更改主题并导航到另一个页面组件时,它会变回原始主题,我添加了我的应用程序组件代码它对页面使用反应路由器
【问题讨论】:
标签: reactjs