У меня есть следующий код в HTML, который я хотел бы интегрировать в реагировать, но на самом деле не уверен, как это сделать.
Я думаю, что это основная ошибка. Возможно, я даже ошибаюсь
Мне нужна функциональность из следующего HTML-кода в моем приложении APP. Это хорошее отзывчивое меню с панелью бургера, которая расширяется до мобильного меню
<!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>
НИЖЕ, ЧТО Я ПОПЫТАЛ Я установил зависимости
- jquery {npm i jquery} (я думаю, что это работает, но я не использую его ни для чего другого, поэтому не уверен)
- Materialise {npm i materialize} (это работает на остальной части сайта)
Моя проблема в том, что я не совсем уверен, стоит ли мне использовать jquery или написать что-то новое, может быть, с помощью componentDidMount ()
ниже приведен код реагирования codeanbox.io здесь 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;