reactの画面遷移を確認したく簡単なサンプルを動かしてみたのですが、画面遷移してもコンポーネントが表示されなく悩んでおります。
ネットのサンプル等はRoutesで挟んでない記述でしたが、下記エラーのためRoutesを追加しました。
A <Route> is only ever to be used as the child of <Routes> element, never rendered directly.
エラーは出なくなりましたが、今度はurlに該当するコンポーネントが空という警告が出て表示が動作しません。
index.tsx:25 Matched leaf route at location "/" does not have an element. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.
~/src/App.js
react
1import React, {Component} from 'react'; 2import { BrowserRouter, Route, Routes, Link } from 'react-router-dom'; 3 4const App = () => ( 5 <BrowserRouter> 6 <h1>Test Page</h1> 7 <ul> 8 <li> 9 <Link to="/">top</Link> 10 </li> 11 <li> 12 <Link to="/About">About</Link> 13 </li> 14 </ul> 15 <Routes> 16 <Route exact path="/" component={Home} /> 17 <Route path="/About" component={About} /> 18 </Routes> 19 </BrowserRouter> 20); 21 22const Home = () => { 23 return( 24 <h1>Home</h1> 25 ); 26} 27 28const About = () => { 29 return( 30 <h1>About</h1> 31 ); 32} 33 34export default App; 35
package.json
{ "name": "sampla-page", "version": "0.1.0", "private": true, "dependencies": { "@testing-library/jest-dom": "^5.16.1", "@testing-library/react": "^12.1.2", "@testing-library/user-event": "^13.5.0", "react": "^17.0.2", "react-dom": "^17.0.2", "react-scripts": "5.0.0", "web-vitals": "^2.1.3" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }, "eslintConfig": { "extends": [ "react-app", "react-app/jest" ] }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] }, "devDependencies": { "react-router": "^6.2.1", "react-router-dom": "^6.2.1" } }
ご教授頂ければ幸いです。
エラーがApp.jsではなくindex.tsxから発生してるところは気になりますね。
index.tsxの中身も追加お願いできますか?
あなたの回答
tips
プレビュー