代码之家  ›  专栏  ›  技术社区  ›  Aman_Kawatra

渲染同一组件,并在特定管线更改上更改某些状态属性

  •  0
  • Aman_Kawatra  · 技术社区  · 7 年前

    如何基于管线更改组件的某些状态属性。因此,目前我有一个组件,其中我定义了一个状态属性 showNotebook=真

       super(props);
          this.state = {
            showNotebook: true,
            flipper: true,
            deleteModalOpen: false
          }
    

    我使用的是react路由器,我有这样一条路由

    <Route path='/submission/:id' component={SubmissionContainer}/>
    

    所以现在我想知道如果有人在路上

     /submission/:id#comment.id=xyzz
    

    它应该显示与上面相同的组件,但具有属性 showNotebook设置为false ,使其与所需更改的组件相同。

    我知道之前也有类似的问题,但无法找到我问题的确切解决方案。因此,请提前道歉。

    1 回复  |  直到 7 年前
        1
  •  0
  •   m-ketan    7 年前

    您只需从路由器道具中检查位置路径名,如果 id 查询参数是否存在,然后用一些逻辑设置状态,如下所示:

    this.state = {
      showNotebook: () => {
        if (this.props.location.pathname === '/submission' && this.props.location.search)
          return false;
        return true;
      }
      ...
    }
    
    推荐文章