javascript - 当用户使用 React Router 点击一个类别时,我如何打开一个新网页?
问题描述
这是我的 index.js
ReactDOM.render(
<div>
<Home />
<App />
</div>,
document.getElementById('root')
)
应用程序中所有 ROUTES 的 App.js
function App() {
return(
<Router>
<Switch>
<Route path="/cpu" exact component={Info}/>
</Switch>
</Router>
)
}
Home.class 中的导航功能
function Navs(){
return(
ReactDOM.render(
<div className="Navs">
<ul>
<Router>
<Link to="/cpu">CPU</Link>
<Link to="/Monitors">MONITORS</Link>
<Link to="/GPU">GPUS</Link>
<Link to="/Ram">RAMS</Link>
<Link to="/Keyboards">KEYBOARDS</Link>
<Link to="/Mouse">MOUSE </Link>
<Link to="/Others">OTHER ACCESORIES</Link>
</Router>
</ul>
</div>
,document.getElementById('Navs')
)
)
}
CPU.jsx(用户点击cpu类别时要渲染的组件
function Info(){
render(
<h1>Hello in cpus </h1>
)
return null
}
问题是当我在 cpu 上导航时,它显示相同的主页,但其中呈现了 cpu 组件。但路径更改为“http://localhost:3000/cpu”
解决方案
您的程序运行正常。你ReactDOM.render
总是渲染Home
和App
. 但App
在根目录中为空。如果单击路由/cpu
,Info
组件将显示在App
组件内。Home
保持不受影响。
我会从中Home
取出并在组件中ReactDOM.render
为其分配一条路线。App
但不要忘记分配路线exact path
,Home
否则你仍然有相同的结果;-)
推荐阅读
- python - 具有类变量继承的子类
- python - 如果在 Pandas 的任一列中找到,则删除两个 float64 值
- ionic-framework - Ionic 3 显示数据目录图片
- lambda - 遍历 Kotlin 中的 lambda
- c# - linq2db 使用 2 个不同的数据库来迁移数据库
- oracle - ORA-6508 - PL/SQL 找不到被调用的程序单元
- javascript - Shiny Rhandsontable - 渲染器 - 使用来自因子的颜色(调色板)
- java - !java.util.LinkedHashMap 在使用 YAML Beans Writer 时出现在文件中
- angular - 角度变化检测错误:ExpressionChangedAfterItHasBeenCheckedError
- python - 在 Windows 中运行带有一组文件的程序的 Python 脚本