反应:this.props.location.pathname 未定义

React: this.props.location.pathname is undefined

告诉我如何访问 pathname? 参数 this.props 为空且 this.props.location 未定义。

如何自动获取这个参数而不需要自己设置?

找到的大部分解决方案都需要我自己(手动)设置这个参数,这不是很方便,代码也很复杂。

ReactDOM.render(
    <BrowserRouter>
      <React.StrictMode>
        <App />
      </React.StrictMode>
    </BrowserRouter>
  document.getElementById('root')
);

function App() {
  return (
    <Container>
      <Row><GeneralMenu /></Row>
      <Row>
        <Switch>
          <Route exact path="/block1">
            <PageStrategy />
          </Route>
          <Route exact path="/block2">
            <PageStrategy />
          </Route>
        </Switch>
      </Row>
    </Container>
  );
}

class GeneralMenu  extends Component {
    render() {
// {location} = this.props.location.pathname;
      return (
  <Navbar>
    <Nav activeKey = {this.props.location.pathname}>
      <Nav.Link href = "/block1">Block1</Nav.Link>
      <Nav.Link href = "/block2">Block2</Nav.Link>
    </Nav>
  </Navbar>
        );      
    }
}

您应该以这种方式在 GeneralMenu 中使用 withRouter() HOC:

export default withRouter(GeneralMenu);

然后使用导出的元素。

你也可以这样做,不导出元素:

const WithRouterGeneralMenu = withRouter(GeneralMenu);
<Nav activeKey = {window.location.pathname}>

这个选项有效!

<Nav.Link as = {Link} to = "/block1">

改为

<Nav.Link href = "/block1">

网站速度