编程语言
首页 > 编程语言> > javascript – 如何在Home Route中正确设置react-router-dom?

javascript – 如何在Home Route中正确设置react-router-dom?

作者:互联网

我有这个index.js:

<Provider store={store}>
  <Router history={history}>
    <App/>
  </Router>
</Provider>

这个App.js:

<Switch>
  <Route exact path="/" component={Home} />
    <Route
      path="/login"
      render={() => <Login userError={this.state.userError} />}
    />
  <Route path="/registration" component={Registration} />;
</Switch>

和Home.js:

<div className="Home">
  <Header/>
  <div className="content">
    <Sidenav/>
      <Switch>
        <Route path="/friends" component={Friends}/>
      </Switch>
    <Feed/>
  </div>
</div>

我希望Friends组件在内容块中呈现,但是现在如果我尝试通过链接到达/ friends路由,我会得到空白页面.如果我在App.js中设置/ friends Route,那就没问题了,但是我的内容类中没有它,因为它将是另一个页面.

你可以帮我一把吗?

另外在功能中我将有更多项目在内容中显示,这就是我将Switch放入Home.js的原因

提前致谢!

解决方法:

移动您的内容类和< Friends>

您遇到的问题是,当您访问/朋友时,组件Home不会呈现,因为它只会在您转到/时呈现

要解决这个问题,只需将Route移动到App.js文件中,然后将内容类移动到Friends组件中.

为了简化这一过程,您可以将内容类转换为组件.这样你就可以将它包装在你渲染的所有东西周围.

或者移动< Friends>并包装内容

我的意思是你还可以创建自己的Route组件,它包装在Content组件中传递给它的任何组件.它看起来可能类似于:

const ContentRoute = ({ component, ...props }) => (
  <Route {...props} component={() => (
    <Content>
      <component />
    </Content>
  )}>
  </Route>
)

标签:react-router-dom,javascript,reactjs,react-router
来源: https://codeday.me/bug/20190731/1586922.html