The following code is App.js for React's SPA. I am using react-router-dom v5 to set up a 404 page, but it shows a default 404.
What is wrong with my code?
import React from 'react'
import { BrowserRouter, Redirect, Route, Switch, useLocation } from 'react-router-dom'
import ScrollToTop from '../src/pages/ScrollToTop.js'
import Header from "../src/pages/Header.js"
import Footer from "../src/pages/Footer.js"
import Top from '../src/pages/Top.js'
import Salon from '../src/pages/Salon.js'
// Redux
import { Provider } from "react-redux"
import store from '../src/store/redux.js'
function App() {
return (
// ログインしているユーザーの情報を全ページに渡している。
<Provider store={store}>
<BrowserRouter>
<ScrollToTop />
<Header />
<Switch>
<Route exact path='/salon/:uid' component={Salon} />
<Route exact path='/salon/:uid/:tag' component={Salon} />
<Route exact path='/' component={Top} />
<Route path='/*'><NoMatch /></Route>
</Switch>
<Footer />
</BrowserRouter>
</Provider>
)
}
function NoMatch() {
let location = useLocation();
return (
<div>
<h3>
No match for <code>{location.pathname}</code>
</h3>
</div>
);
}
export default App