Estoy creando un modal en reaccionar, quiero que cuando se haga clic en una tarjeta, aparezca el modal, pero tengo un problema para mostrarlo. Estoy usando UseState para manejar la apertura y el cierre (alternar verdadero o falso), pero al hacer clic en la tarjeta, aparece un error que dice TypeError: setIsOpen no es una función. ¿Cómo puedo hacer que funcione? No entiendo por qué sucede esto. este es mi codigo
import React, { useState } from "react"; import Modal from "../modal/projectModal.jsx"; // Scss import "./projectBox.scss"; const ProjectBox = (props) => { const { isOpen, setIsOpen } = useState(false); return ( <div> <div className="portfolio__box" onClick={() => setIsOpen(true)}> <img src={props.preview} alt="project" /> <div className="portfolio__hover-info flex-center"> <div className="text-center"> <p className="font30 weight800">{props.title}</p> <p className="font12 weight500">{props.tag}</p> </div> </div> </div> <Modal open={isOpen}>project details</Modal> </div> ); }; export default ProjectBox;Cambie { } a [ ] en su useState .
Entonces, sería como
const [ isOpen, setIsOpen ] = useState(false);