reactjs - 反应路由问题
问题描述
我的项目中有一个主要的详细设计,使用以下路线: localhost:3000/users (UserMasterComponent) localhost:3000/users/register (UserDetailComponent)
当我调用 localhost:3000/users/register 时,浏览器调用“UserMasterComponent”,因此,它忽略了 url 处的“注册”。
应用程序.js
return (
<Router>
<div>
<h2>Welcome to React Router Tutorial</h2>
<nav className="navbar navbar-expand-lg navbar-light bg-light">
<ul className="navbar-nav mr-auto">
<li><Link to={'/usuario'} className="nav-link">Usuario</Link></li>
<li><Link to={'/usuario/cadastrar'} className="nav-link">About</Link></li>
</ul>
</nav>
<hr />
<Switch>
<Route path='/usuario' component={UsuarioList} />
<Route path='/usuario/cadastrar' component={UsuarioDetail} />
</Switch>
</div>
</Router>
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';
import { BrowserRouter } from 'react-router-dom'
ReactDOM.render(<BrowserRouter><App /></BrowserRouter>, document.getElementById('root'));
// If you want your app to work offline and load faster, you can change
// unregister() to register() below. Note this comes with some pitfalls.
serviceWorker.unregister();
解决方案
Since you are using a Switch
from React Router, the path chosen will be the first one that satisfies the path
.
In your case you are sending /usuario/cadastrar
and the first option:
<Route path='/usuario' component={UsuarioList} />
will accept this. What you are missing is the exact
. So try this:
<Switch>
<Route exact path='/usuario' component={UsuarioList} />
<Route path='/usuario/cadastrar' component={UsuarioDetail} />
</Switch>
For a good reference on starting with react router check this out
推荐阅读
- grouping - 在 Tableau 中对维度进行分组,但保留未分组的数据
- java - 试图计算员工年龄(期间)与他们被雇用的日期(LocalDate)之间的日期。如何解决数据类型不匹配的问题?
- sql - PostgreSQL - Format() 命名参数?
- javascript - 如何创建一个 HTML 元素并在其中设置一些东西?
- java - 在 java 接口声明中使用模板参数
- asp.net-core - 如何在 Asp.Net Core 2.1 应用程序中创建部分视图登录和注册
- python - 在 Python 对象列表中创建列表和求和属性
- ruby - Ruby Gem FFI 不会为 Jekyll 网站构建,mkmf.rb 找不到 ruby 的头文件
- python - 比较两个列表并将列表 1 中的值替换为列表 2 中的值
- html - 模态响应引导