Having such simple React main App file:
import React from 'react';
import './App.css';
import { BrowserRouter as Router, Routes, Route, Link } from 'react-router-dom';
import {Header} from "./Components/header"
import {Footer} from "./Components/footer"
import {Sidebar} from "./Components/sidebar"
import {About} from "./Components/about"
import {User} from "./Components/user"
const listener = () => {
console.log("Main listener")
};
function App() {
const media = window.matchMedia('(min-width: 700px)');
media.addEventListener("change", listener);
return (
<Router>
<div className="App">
<Header />
<Sidebar />
<Footer />
<Routes>
<Route path="/"></Route>
<Route path="/about" element={<About/>}></Route>
<Route path="/user" element={<User/>}></Route>
</Routes>
<div className="App">
<ul>
<li>
<Link to="/">Home</Link>
</li>
<li>
<Link to="/about">About</Link>
</li>
<li>
<Link to="/user">User</Link>
</li>
</ul>
</div>
</div>
</Router>
);
}
export default App;
The thing that makes me wonder is that the change event handler function (listener) is called TWICE! when I resize the browser window. Why isn't the handler function called just once as expected?