Titre réécrit en : TypeError : isOpen n'est pas une fonction appelable
<p>J'essaie de convertir mon composant basé sur une classe en un composant basé sur une fonction, que j'ai écrit il y a quelque temps en apprenant REACT, mais lors de la conversion, j'ai eu une erreur indiquant que isOpen n'est pas une fonction, je' Je suis un peu confus car je l'ai défini comme un état et je l'ai appelé dans handleToggle(), puis je l'ai appelé au logo du composant. </p>
<pre class="brush:php;toolbar:false;">importer React, { useState, useEffect } depuis "react" ;
importer le logo depuis "../images/logo.svg" ;
importer { FaAlignRight } depuis "react-icons/fa" ;
importer {Lien} depuis "react-router-dom" ;
importer le badge depuis '@mui/material/Badge' ;
importer le menu depuis '@mui/material/Menu' ;
importer MenuItem depuis '@mui/material/MenuItem' ;
exporter la fonction par défaut Navbar(){
const [anchorEl, setAnchorEl] = useState(null);
const open = Boolean(anchorEl);
const handleClick = (événement) =>
setAnchorEl(event.currentTarget);
} ;
const handleFermer = () =>
setAnchorEl(null);
} ;
const [isOpen, setIsOpen] = useState(null);
useEffect(() =>{
handleToggle();
});
// état = {
// estOuvert : faux,
// };
const handleToggle = () =>
setIsOpen(isOpen() );
} ;
retour (
<nav className="barre de navigation">
<div className="nav-center">
<div className="nav-header">
<Lien vers="/">
<img src={logo} alt="Beach Resort" />
</Lien>
<bouton
type="bouton"
className="nav-btn"
onClick={handleToggle}
>
<FaAlignRight className="icône de navigation"
</bouton>
</div>
<ul
className={isOpen ? "nav-links show-nav" : "liens-nav"}
>
<li>
<Lien vers="/">Accueil</Lien>
≪/li>
<li>
<Lien vers="/chambres">Chambres</Lien>
≪/li>
</ul>
<Badge badgeContent={4} color="primaire"
id="bouton-de base"
aria-controls={ouvrir ? 'menu-de base' : non défini}
aria-haspopup="vrai"
aria-expanded={ouvrir ? 'vrai' : indéfini}
onClick={handleClick}
>
<i className="fa-solid fa-cart-shopping text-light"
style={{ fontSize : 25, curseur : "pointeur" }}
>≪/i>
</Badge>
</div>
<Menu
id="menu-de base"
ancreEl={ancreEl}
ouvert={ouvert}
onClose={handleClose}
MenuListProps={{
'aria-labelledby' : 'bouton-de-base',
}}
>
<MenuItem onClick={handleClose}>Profil</MenuItem>
<MenuItem onClick={handleClose}>Mon compte</MenuItem>
<MenuItem onClick={handleClose}>Déconnexion</MenuItem>
</Menu>
</nav>
);
}</pré>
<p>将非常感谢任何建议。</p>