//App.tsx
import React, { useState } from "react";
import { BrowserRouter, Route, Routes } from "react-router-dom";
import "./App.css";
import Footer from "./layout/Footer";
import Header from "./layout/Header";
import DeliveryList from "./pages/DeliveryList";
function App() {
return (
<React.Fragment>
<Header />
<div className="container-xxl bd-gutter mt-3 my-md-4 bd-layout">
<aside className="bd-sidebar"></aside>
<main className="order-1">
<BrowserRouter>
<Routes>
<Route path="/" element={<DeliveryList />} />
</Routes>
</BrowserRouter>
</main>
</div>
<Footer />
</React.Fragment>
);
}
export default App;
$ yarn add react-router-dom
import { BrowserRouter, Route } from 'react-router-dom';
Router를 이용해서 전환된 페이지로 데이터를 전달하는 법
<Route path="/test/:data" element={<Test/>} />
기존에 있던 <Route path="/test" element={} /> 태그의 path 속성 값에 '/:data'를 추가했다.
test.js 수정
/* src/inc/test.js */ 수정 전
import React, { Component } from 'react';
class test extends Component {
render() {
return (
<div>
<h3> This is test page </h3>
</div>
);
}
}
export default test;
/* src/inc/test.js */ 수정 후
import React, { Component } from 'react';
class test extends Component {
constructor(props) {
super(props)
console.log(props);
}
render() {
return (
<div>
<h3> My name is {this.props.match.params.data} </h3>
</div>
);
}
}
export default test;
url : localhost:3000/test/hjooliy 로 들어가면,
화면 : My name is hjooliy
-> url의 data 값으로 넘겨진 값을 {this.props.match.params.data} 값으로 가져오고 화면에 렌더된다.