I have the following code in HTML that I would like to integrate into react but not sure really how to do it.
I think it is a basic error. I may be even going about it all wrong
I want the functionality from the following HTML in my react APP. Its a nice responsive menu with a burger bar that expands to a mobile menu
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<!--Import Google Icon Font-->
<link
href="https://fonts.googleapis.com/icon?family=Material+Icons"
rel="stylesheet"
/>
<!-- Compiled and minified CSS -->
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css"
/>
<title>GRID</title>
</head>
<body>
<nav class="nav-wrapper indigo">
<div class="container">
<a href="#" class="brand-logo">Site Title</a>
<a href="#" class="sidenav-trigger" data-target="mobile-links">
<i class="material-icons" onClick="displayMobileMenu">menu</i>
</a>
<ul class="right hide-on-med-and-down">
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
<li><a href="#">Login</a></li>
</ul>
</div>
</nav>
<ul class="sidenav" id="mobile-links">
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
<li><a href="#">Login</a></li>
</ul>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<!-- Compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<script
$(document).ready(function(){
$('.sidenav').sidenav();
});></script>
</body>
</html>
BELOW IS WHAT I HAVE TRIED I have installed the dependencies
- jquery {npm i jquery}(I think this works but not using it for anything else so not sure)
- Materialize {npm i materialize} (this works on the rest of the site)
My issue is I am not really sure if I should use the jquery or write something new maybe with componentDidMount()
below is the react code codesanbox.io is here https://codesandbox.io/embed/wiki-mogpb?fontsize=14
import React from "react";
import { Link } from "react-router-dom";
import $ from "jquery";
const displayMobileMenu = () => {
return (
$('.sidenav').sidenav()
)
};
const Navbar = ({ title }) => {
return (
<div>
<nav className="nav-wrapper indigo">
<div className="container">
<a href="#" className="brand-logo">
React Wiki
</a>
<a href="#" className="sidenav-trigger" data-target="mobile-links">
<i
className="material-icons"
onClick={displayMobileMenu()}
>
menu
</i>
</a>
<ul className="right hide-on-med-and-down">
<li>
<Link to="/">Home</Link>
</li>
<li>
<Link to="/files">React Files</Link>
</li>
<li>
<Link to="/context">Contexts</Link>
</li>
<li>
<Link to="/questions">Questions</Link>
</li>
</ul>
</div>
</nav>
<ul className="sidenav" id="mobile-links">
<li>
<a href="#">Home</a>
</li>
<li>
<a href="#">About</a>
</li>
<li>
<a href="#">Contact</a>
</li>
<li>
<a href="#">Login</a>
</li>
</ul>
</div>
);
};
Navbar.defaultProps = {
title: " React Wiki"
};
export default Navbar;