反应路由器不使用参数

Joh*_*itt 7 javascript reactjs webpack react-router redux

我有以下设置:

<div>
    <Router history={browserHistory}>
        <Route path="/" component={NewCustomerContainer} />
        <Route path="/newCustomer" component={NewCustomerContainer} />
        <Route path="/search" component={SearchPageContainer} />
        <Route path="/network" component={NetworkContainer} />
        <Route path="/network/:id" component={NetworkContainer} ></Route>
    </Router>
</div>
Run Code Online (Sandbox Code Playgroud)

该路线http://localhost:8100/network工作正常。该路由http://localhost:8100/network/abc123没有出现在我的控制台中的 404 错误。有没有人见过这样的事情?

Man*_*dez 21

其他尝试是添加一个

<base href="/">
Run Code Online (Sandbox Code Playgroud)

标记在您的基本 HTML 页面的 head 标记内。

  • 它对我也有用!就我而言,它可以工作,因为如果未设置基本 url,它将尝试使用定义的路径(具有参数的路径)作为基本 url 来加载资源文件。 (2认同)
  • 使用 `react-router-dom` v5.2.0 为我工作 (2认同)

Zar*_*old 8

<div>
    <Router history={browserHistory}>
        <Route path="/" component={NewCustomerContainer} />
        <Route path="/newCustomer" component={NewCustomerContainer} />
        <Route path="/search" component={SearchPageContainer} />
        <Route path="/network" component={NetworkMetaContainer}>
            <Route path="/:id" component={NetworkContainer}/>
        </Route>
    </Router>
</div>
Run Code Online (Sandbox Code Playgroud)

您忘记在网络路由中嵌套“/id”。React Router 通过将 Routes 放置在其他 Routes 中来允许嵌套路由...如果您在网络中拥有所有 network/id 内容并且网络呈现其子代,那么这将正常工作。

新的 NetworkMetaContainer 需要构建一个简单的渲染子<IndexRoute />节点......或者如果你愿意,你可以在网络内部有一个路由,但无论哪种方式,NetworkMetaContainer 东西都必须只是外部包装器(也许它会有网络内的不同选项卡或链接或可能性)?