【发布时间】:2019-11-20 22:54:08
【问题描述】:
我在不同的路线上有两个组件。我想知道如何在路由更改时保持 DOM 元素处于相同状态。例如,当导航回同一个组件时,我希望所有 DOM 元素都应用与路由更改之前相同的 css 类。
我尝试过 redux persist 并使用带有 switch 的嵌套路由,但这些似乎都不起作用。从我所做的研究来看,React 似乎总是在路由更改时挂载和卸载组件,我无法找到防止这种情况发生的方法。
我希望在返回 test1 时保持红色背景色。
class test1 extends React.Component {
constructor(props) {
super(props);
}
addClassFucn = event => {
$(event.target).parent().css("background-color", "red")
}
renderButton() {
return (
<div>
<div>
<button onClick={this.addClassFucn}>Click me</button>
<Link to="/test2" className="ui button primary back" >
test2
</Link>
</div>
</div>
)
}
render() {
return (
<div>
<div>This is test 1{this.renderButton()}</div>
</div>
);
}
}
export default test1;
class test2 extends React.Component {
constructor(props) {
super(props);
}
renderButton() {
return (
<div>
<Link to="/test1" className="ui button primary back" >
back
</Link>
</div>
)
}
render() {
return (
<div>
<div>This is test 2{this.renderButton()}</div>
</div>
);
}
}
export default test2;
【问题讨论】:
-
添加一些代码,如果可能的话再添加一些图像。它将帮助社区清楚地了解您想要什么。添加您尝试过的内容(最少部分)。
标签: reactjs redux react-router