【问题标题】:React Link changes URL but doesn't refresh the viewReact Link 更改 URL 但不刷新视图
【发布时间】:2018-12-14 20:58:50
【问题描述】:

我对 React 中的 <Link to=""> 元素有疑问。单击它后,URL 会更改,但视图保持不变。刷新页面后,会显示正确的组件,路由器本身也可以正常工作。

这是我的代码:

App.js

class App extends Component {
  render() {
    return (
      <BrowserRouter>
        <React.Fragment>
          <MainBar />
          <Sidebar />
          <Content sidebarOpen={this.state.sidebarOpen}>
                <Switch>
                  <Route exact path="/" component={Home} />
                  <Route path="/about" component={About} />
                </Switch>
          </Content>
        </React.Fragment>
      </BrowserRouter>
    );
  }
}

我在其中调用/about URL 的Sidebar.js。这是一个额外的类 ListItemLink 来创建一个 Link to 和 React Material ListItem

class ListItemLink extends React.Component {
  renderLink = itemProps => <Link to={this.props.to} {...itemProps} />;

  render() {
    const { icon, primary } = this.props;
    return (
      <li>
        <ListItem button component={this.renderLink}>
          <ListItemIcon>{icon}</ListItemIcon>
          <ListItemText primary={primary} />
        </ListItem>
      </li>
    );
  }
}
class Sidebar extends React.Component {
  render() {
    return (
        <Drawer >
          <List>
            <BrowserRouter>
              <ListItemLink to="/about" primary="About" icon={<StarIcon />} />
            </BrowserRouter>
          </List>
        </Drawer>
    );
  }
}

我已经尝试过的:

根据我尝试在此处添加 withRouter() 的其他 stackoverflow 问题的答案:

<Route path="/about" component={withRouter(About)} />

也在这里的 About.js 中:

export default withRouter(About);

我还尝试将 Routes 包装到一个主要的 RouteContent 这样的组件中:

<Router>
    <Route path="/" component={Content} >
        <Route default component={Home} />
        <Route path="/about" component={About} />
    </Route>
</Router>

【问题讨论】:

  • BrowserRouterSidebar 中有什么用?它可能无助于解决您的问题,但我仍然觉得它在这里没有用
  • @Kabbany 它有效,哈哈。我确信我以前没有它时有过错误。谢谢!如果您将其添加为答案,我会接受。

标签: reactjs react-router


【解决方案1】:

我认为BrowserRouterSidebar 中没有用

【讨论】:

    猜你喜欢
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    • 2019-04-24
    相关资源
    最近更新 更多