node.js - 反应渲染多个组件,尽管使用“精确”
问题描述
我有一个 React 应用程序,两条路线之间存在冲突:
<Route exact path="/app/participants/register" component={ParticipantRegistration}/>
<Route exact path="/app/participants/:participantID" component={ParticipantDetailed}/>
第一条路线,渲染得很好。但是,由于/:participantID
第二个 Route 路径中的通配符 -ParticipantRegistration
和ParticipantDetailed
组件都呈现 - 尽管使用了exact
参数。
ParticipantRegistration
当路径是/app/participants/register
而不渲染组件时,如何让 React 仅渲染ParticipantDetailed
组件?
我宁愿不必修改路径,因为该应用程序还有一些其他类似的冲突,并且跟踪所有不同的路径已经很困难了。
解决方案
您可以使用 a 一次Switch
只渲染一条路线。
import React from "react";
import ReactDOM from "react-dom";
import { BrowserRouter, Route, Switch } from "react-router-dom";
import "./styles.css";
function App() {
return (
<BrowserRouter>
<Switch>
<Route path="/x/register" component={() => <p>x</p>} />
<Route path="/x/:id" component={() => <p>y</p>} />
</Switch>
</BrowserRouter>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
你可以在这里玩代码
推荐阅读
- opencv - opencv3 在 vs2015 上的 Mat::Mat(int ndims, const int* sizes, int type) 构造中失败
- c# - 有什么方法可以从 Windows 获取拖动开始事件?
- python - Python str.islower() 方法似乎在我的代码中不起作用?
- javascript - React.JS - 点击事件因服务调用而在状态更改时丢失
- c - c数组中的分段错误,访问字符串中的单个字符
- javascript - ReactJS:目标容器不是 dom 元素(非 HTML)
- image-processing - 通过 2D 投影识别 3D 形状
- spring - 在应用程序级别限制 Spring WebClient 调用
- python - 如何从文件中获取输出以在元素之间使用逗号?
- processing - 如何在 ProcessingJS 中绘制星形