【发布时间】:2021-11-09 21:12:09
【问题描述】:
就像标题一样,当我单击其中一项时,URL 会发生变化,但页面不会改变,只会显示相同的页面。
index.js
import React from "react";
import ReactDOM from "react-dom";
import "./index.css";
import { BrowserRouter } from "react-router-dom";
import App from "./App";
import reportWebVitals from "./reportWebVitals";
ReactDOM.render(
<React.StrictMode>
<BrowserRouter>
<App />
</BrowserRouter>
</React.StrictMode>,
document.getElementById("root")
);
reportWebVitals();
App.js
import axios from "axios";
import React, { useEffect, useState } from "react";
import { Routes, Route } from "react-router-dom";
import ListItem from "./components/ListItem";
function App() {
const [data, setData] = useState([]);
return (
<div className="App">
// Here I am using Routes
<Routes>
<Route
path="/test"
element={data.map((list) => (
<ListItem key={list.id} {...list} />
))}
></Route>
</Routes>
</div>
);
}
export default App;
Test.js
import React from "react";
const Test = () => {
return (
<div>
<p>Test</p>
</div>
);
};
export default Test;
数据
{
id: recipe_id
category: String
cookingSteps: [String]
cookingTime: Int
description: String
ingredients: [String]
kcal: Int
name: String
servings: Int
spices: [String]
picture: String
}
我也尝试过useNavigate,但没有成功。我在这里错过了什么?
我编辑了这个问题,因为它有些模糊。
这是源代码树。
你能让我知道我应该解决什么问题吗?
【问题讨论】:
-
您是否正在渲染任何路由以匹配 URL 路径并渲染其他任何内容?从您共享的代码 sn-p 和您描述的行为来看,这正是我所期望的。似乎您有一个非常简单的示例,您可以更新并分享一个更具代表性的代码示例吗?
-
你能分享你的路线定义吗?
-
@DrewReese 我已经编辑了我的问题。实际上我没有明白我需要分享更多内容的意义,因为我分享的代码都是我写的,所以我添加了
source tree和Test.js。请让我知道我需要添加更多内容。 -
@Camilo
routes definition是什么意思? -
所以你没有渲染任何
Route组件?这些就是将path属性与 URL 匹配并为该路径呈现组件的原因。
标签: reactjs react-router react-router-dom