为什么我的一些嵌套路线没有被渲染? ReactRouter4

时间:2017-08-24 02:34:54

标签: reactjs react-router-v4

我有一个包含我的路线的文件:

const routes = (
  <App>
    <Switch>
      <Route component={Login} path="/login" />
      <Route path="/" component={SecuredRoutes} />
    </Switch>
  </App>
);

在我的SecuredRoutes组件中,我有一个Switch组件:

const SecuredRoutes = () => (
  <Switch>
    <Route component={Home} exact path={`/`} />
    <Route component={Other} path={`/other`} />
    <Route component={Admin} path={`/admin`} />
  </Switch>
)

Home Component呈现正常。它上面有AdminOther的链接。当我点击其中一个Link时,网址会更改,但Component不会呈现。我可以刷新页面,然后Component将呈现。路线有效,但只有很难刷新。

我还尝试在match SecuredRoutes中使用Component并在match.url中使用path进行解构enum Result<S, F> { case success(S) case failure(F) var successValue: S? { switch self { case .success(let value): return value case .failure: return nil } } var failureValue: F? { switch self { case .failure(let value): return value case .success: return nil } } } let resultSuccess = Result<Int, String>.success(1) let resultFailure = Result<Int, String>.failure("Error") if let error = resultFailure.failureValue { // do something print(error) } 。这也没有帮助。

这对任何人都有意义吗?我做错了什么?

1 个答案:

答案 0 :(得分:0)

问题在于,由于Redux,状态/道具似乎没有变化,所以没有任何渲染。 Here是描述问题的md

我试图在Components中包含较低级别withRouter,但它们永远不会被渲染,因此从未调用过代码。我最终用withRouter包装了我的顶级组件,现在所有内容都按预期呈现。

我不知道这是否会导致额外的渲染。我没有进行任何分析,看看这会如何影响我的应用程序,但它正在呈现。