• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

286
Views
Declarar una clase de módulo CSS como variable en NextJS

Discúlpeme si olvido algo: esta es mi primera publicación en Stack Overflow.

El propósito de la función es abrir y cerrar mi menú de hamburguesas. Adjunté una instantánea del archivo JSX donde se encuentra este problema: NavbarLinks.jsx . Las líneas de código con las que estoy luchando son la 15 y la 18, donde intento declarar una clase de módulo CSS como una variable.

 const [navLinkOpen, navLinkToggle] = useState(false); const handleNavLinksToggle = () => { navLinkToggle(!navLinkOpen); }; const renderClasses = () => { let classes = {`${styles.navLinks}`}; if (navLinkOpen) { classes += {`${styles.active}`}; } return classes; };

Luego llamo a la clase devuelta dentro de la etiqueta ul en la línea 27.

 <ul className={renderClasses}>

He intentado varias variaciones de declarar esta clase como una variable, lo que les muestro aquí es solo mi último intento. Soy consciente de que el intento que estoy usando ha roto el código. - Soy bastante nuevo en JavaScript y en lugar de simplemente seguir las guías de YouTube, aprendo mejor probando las cosas yo mismo.

Intente responder la pregunta que tengo en lugar de sugerir un método alternativo, ¡simplemente porque solo quiero aprender más sobre esto! - pero si tiene métodos alternativos de lo que estoy tratando de lograr aquí, también me gustaría verlos.

También incluiré una instantánea del archivo del módulo CSS con el que estoy trabajando en caso de que pueda resultarle útil: NavbarLinksStyle.module.css

Gracias de antemano por cualquier ayuda, estaré disponible para responder cualquier pregunta.

over 3 years ago · Juan Pablo Isaza
2 answers
Answer question

0

ante todo felicidades por el post. Está muy bien explicado. El código que compartió parece estar bastante bien en general, pero por lo que puedo ver, le falta la ejecución de la función renderClasses .

 const [navLinkOpen, navLinkToggle] = useState(false); const handleNavLinksToggle = () => { navLinkToggle(!navLinkOpen); }; const renderClasses = () => { let classes = styles.navLinks; if (navLinkOpen) { classes += styles.active; } return classes; }; {...} <ul className={renderClasses()}> {...}

Además, puede lograr el mismo resultado usando una variable en lugar de una función:

 const renderClasses = `${styles.navLinks} ${navLinkOpen ? styles.active : ''}`;

EDITAR : También como señaló @Mina, debe deshacerse de las llaves en su función de renderizado.

over 3 years ago · Juan Pablo Isaza Report

0

En primer lugar, no debe declarar la variable de clases con corchetes.

 const renderClasses = () => { let classes = styles.navLinks if (navLinkOpen) { classes += styles.active } return classes; };
over 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error