在特定路由更改上渲染具有某些状态 属性 更改的相同组件
Render the same component with some state property changes on a certain route changes
如何根据路由更改组件的某些状态 属性。所以,目前我有一个组件,我在其中定义了一个状态 属性 showNotebook= true
super(props);
this.state = {
showNotebook: true,
flipper: true,
deleteModalOpen: false
}
我正在使用 react-router,我有这样的路由
<Route path='/submission/:id' component={SubmissionContainer}/>
所以现在我希望如果有人走这条路
/submission/:id#comment.id=xyzz
它应该显示与上面相同的组件,但 属性 showNotebook 设置为 false,因此它与需要更改的组件相同。
我知道这里之前也有人问过类似的问题,但找不到我的问题的确切解决方案。所以提前为此道歉。
您可以简单地检查路由器属性中的位置路径名以及 id
查询参数是否存在,然后使用一些逻辑设置状态,如下所示:
this.state = {
showNotebook: () => {
if (this.props.location.pathname === '/submission' && this.props.location.search)
return false;
return true;
}
...
}
如何根据路由更改组件的某些状态 属性。所以,目前我有一个组件,我在其中定义了一个状态 属性 showNotebook= true
super(props);
this.state = {
showNotebook: true,
flipper: true,
deleteModalOpen: false
}
我正在使用 react-router,我有这样的路由
<Route path='/submission/:id' component={SubmissionContainer}/>
所以现在我希望如果有人走这条路
/submission/:id#comment.id=xyzz
它应该显示与上面相同的组件,但 属性 showNotebook 设置为 false,因此它与需要更改的组件相同。
我知道这里之前也有人问过类似的问题,但找不到我的问题的确切解决方案。所以提前为此道歉。
您可以简单地检查路由器属性中的位置路径名以及 id
查询参数是否存在,然后使用一些逻辑设置状态,如下所示:
this.state = {
showNotebook: () => {
if (this.props.location.pathname === '/submission' && this.props.location.search)
return false;
return true;
}
...
}