在特定路由更改上渲染具有某些状态 属性 更改的相同组件

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;
  }
  ...
}