【发布时间】:2022-01-21 10:23:35
【问题描述】:
我正在做一个个人的 React.js 项目。我正在尝试使用 react-router-dom,但我无法使其工作。我在 App.js 中做了 BrowserRouter。直到那里应用程序工作正常,但我无法使路由动态重定向到地图项。我试图按照文档和一些教程没有成功。数据来自Star Wars API这是代码: App.js:
import './App.css';
import { Route, BrowserRouter as Router, Routes } from "react-router-dom";
import Home from './components/Home';
import MovieDetail from './components/MovieDetail'
import Navbar from './components/Navbar';
function App() {
return (
<Router>
<>
<Navbar />
<Routes>
<Route exact path='/' element={<Home />} />
</Routes>
<Routes>
<Route exact path to='/:movieId' element={<MovieDetail />} />
</Routes>
</>
</Router>
);
}
export default App;
物品详情:
import { useEffect, useState } from "react";
import { useParams } from "react-router-dom";
const MovieDetail = () => {
const { movieId } = useParams();
const [result, setResult] = useState([]);
const fetchData = async () => {
const res = await fetch("https://www.swapi.tech/api/films/");
const json = await res.json();
setResult(json.result);
}
useEffect(() => {
fetchData();
}, []);
let movieMatch = (result.find(value) => value.properties.title == movieId)
return (
<div>
<h2>
{result
.find((value) => {value.properties.title == movieId})}
</h2>
</div>
);
}
export default MovieDetail;
更新 这是codesand 中完整代码的链接,其中包含更新的 App.js
【问题讨论】:
标签: javascript reactjs react-router react-router-dom