【发布时间】:2021-07-31 05:44:43
【问题描述】:
我是 react 和 react-router 的新手,所以请放轻松。
我正在尝试在我的 Todo List 项目中实现路由器,其中 path="/" 将我带到我的 todo 列表,而 path="/id" 将我带到测试页面(稍后将显示任务的描述) .
当我单击将我带到“/id”的链接时,浏览器中的 URL 会发生变化,但页面/内容不会。但是,当我刷新浏览器时,会加载测试页面。
我已将 Switch 放入 App.js 中,如下所示。
import React, { Component } from "react";
import "./App.css";
import TodoList from "./components/TodoList";
import { BrowserRouter as Router, Switch, Route, Link } from "react-router-dom";
import Test from "./components/Test";
class App extends Component {
render() {
return (
<Router>
<div className="todo-app">
<p>
<Link to="/">Home</Link>
</p>
<Switch>
<Route exact path="/" component={TodoList} />
<Route path={`/id`} component={Test} />
</Switch>
</div>
</Router>
);
}
}
export default App;
并且我已将指向“/id”的链接放在 App.js 中调用的组件的子组件中,如下所示。
<div key={todo.id}>
<Link className="todo-text" to={`/id/${todo.id}`}>
{todo.text}
</Link>
</div>
我是否遗漏了导致我的组件在单击链接时无法加载的内容?
编辑:这是我的项目的链接。 https://stackblitz.com/edit/react-7cpjp9?file=src/index.js
【问题讨论】:
-
正在呈现“/id”路由的链接在哪里,它们是如何呈现的?你能分享那个组件代码吗?路由路径不应该是
"/id/:id"之类的东西来匹配链接到它的计算 URL/路径吗? -
@DrewReese 我们可以做“/id/:id”,我不知道这是可能的。我已经改变了,但问题仍然是一样的。我已经在上面的编辑中链接了我的项目,请您检查一下并帮助我可能做错了什么?