reactjs - react-router-dom 匹配对象 isExact false

标签 reactjs redux react-router-dom

我正在开发一个 react 项目。我尝试访问 Header 组件中的 url 参数。但是,它总是返回空。

import React from 'react';
import { Route, Switch } from 'react-router-dom';
import { ConnectedRouter } from 'connected-react-router'
import SamplePage from './pages/SamplePage';
import PropertyPage from './pages/PropertyPage';
import LoadingPage from './pages/LoadingPage';
import Header from './header/Header';
import ButtonGroup from './ButtonGroup';
import { Container } from 'semantic-ui-react';
import history from '../history';

const App = () => {
  return (
    <ConnectedRouter history={history}>
      <div>
        <Switch>
          <Route path='/loading' exact component={LoadingPage} />
          <Route component={Header} title='Sample page' />
        </Switch>
        <Container style={{ marginTop: '7em' }}>
          <Switch>
            <Route
              path='/page/:pageType/properties/:propertyId'
              exact
              component={PropertyPage}
            />
            <Route path='/page/:pageType' exact component={SamplePage} />
          </Switch>
        </Container>
        <Switch>
          <Route exact path='/loading' render={() => <div />} />
          <Route component={ButtonGroup} />
        </Switch>
      </div>
    </ConnectedRouter>
  );
}

export default App;

我尝试访问 Header 组件中的 url 参数。 params 为空,isExact 为 false。谁能帮我这个?谢谢。

最佳答案

console.log的屏幕截图来看,react-router正在匹配

<Route component={Header} title='Sample Scorecard' />

这是正确的行为,因为 Switch 会查找第一个匹配项。

我建议不要将 Header 的渲染声明为 Route。即

<Switch>
    <Route path='/loading' exact component={LoadingPage} />
    <Header title='Sample Scorecard' />
</Switch>

这样 Switch 只会在 loading 路径不匹配时渲染它。

关于reactjs - react-router-dom 匹配对象 isExact false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56486934/

相关文章:

android - react 导航深度链接打开应用程序但不纠正页面

javascript - 使用 AJAX 向 API 发出请求时遇到问题

node.js - ExpressJS + Webpack + react 路由器 v4

javascript 对象在 fetch 内不起作用

reactjs - JSX 元素类型 'Route' 没有任何构造或调用签名

javascript - 通过 id React 私有(private)路由

javascript - react +不可变.js : merge Map into List of Maps to update state

javascript - 如何迭代对象数组并更改 redux 中的属性?

javascript - Redux store不随react状态的变化而变化

reactjs - React router dom将数据从父组件传递到子路由器组件不传递props.match