.js fil svarar inte, tips? React.

Permalänk

.js fil svarar inte, tips? React.

Tja gänget! Håller på med en sida i react där css fungerar utmärkt att importera men just js fungerar inte. Håller på att skapa en navbar som skall synas efter att användaren har loggat in, all kod svarar förutom js verkar det som, dock bara för att logga ut ska tilläggas, så den fungerar delvis men förstår inte varför inte resten fungerar.

Skall tilläggas att det som inte svarar är min showNavbar funktion som jag kallar i mina buttons

Här kommer lite kod:
Detta är main sidan som användaren kommer till efter inlogg:

import Navbar from "../Navbar/index"; import React from "react"; const Main = () => { return ( <React.Fragment> <Navbar/> </React.Fragment> ); }; export default Main;

Detta är navbar.js

import { useRef } from 'react'; import { FaBars, FaTimes } from 'react-icons/fa'; import './styles.module.css'; function Navbar(){ const navRef = useRef(); const handleLogout = () => { localStorage.removeItem("token"); window.location.reload(); }; const showNavbar = () => { navRef.current.classList.toggle("responsive_nav"); } return( <header> <h3>Logo</h3> <nav ref={navRef}> <a href="/#">Hem</a> <a href="/#">Nyheter</a> <a href="/#">Forum</a> <a href="/#">Kontakt</a> <a href="/#" onClick={handleLogout}>Logga Ut</a> <button className="nav-btn nav-close-btn" onClick={showNavbar}> <FaTimes /> </button> </nav> <button className="nav-btn" onClick={showNavbar}> <FaBars /> </button> </header> ); } export default Navbar;

samt css för navbar:

*{ padding: 0; margin: 0; box-sizing: border-box; } :root{ --mainColor: #006390; --mainColorLight: #5767aa; --sedondaryColor: #DB2839; --textColor: #eee; } header{ display: flex; align-items: center; justify-content: space-between; height: 80px; padding: 0 2rem; background-color: var(--mainColor); color: var(--textColor); } nav a{ margin: 0 2rem; color: var(--textColor); text-decoration: none; } nav a:hover{ color: var(--sedondaryColor); } header .nav-btn{ padding: 5px; cursor: pointer; background: transparent; border: none; outline: none; color: var(--textColor); visibility: hidden; opacity: 0; font-size: 1.8rem; } @media only screen and (max-width: 1024px){ header .nav-btn{ visibility: visible; opacity: 1; } header nav{ position: fixed; top: 0; left: 0; height: 100%; width: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.5rem; background-color: var(--mainColor); transition: 1s; transform: translateY(-100vh); } header .responsive_nav{ transform: none; } nav .nav-close-btn{ position: absolute; top: 2rem; right: 2rem; } nav a{ font-size: 1.5rem; } }

Läste nånstans att id kan va bra att ha med, tänkte höra era tankar först!

Permalänk
Medlem
Skrivet av PapaDiouf:

Tja gänget! Håller på med en sida i react där css fungerar utmärkt att importera men just js fungerar inte. Håller på att skapa en navbar som skall synas efter att användaren har loggat in, all kod svarar förutom js verkar det som, dock bara för att logga ut ska tilläggas, så den fungerar delvis men förstår inte varför inte resten fungerar.

Skall tilläggas att det som inte svarar är min showNavbar funktion som jag kallar i mina buttons

Här kommer lite kod:
Detta är main sidan som användaren kommer till efter inlogg:

import Navbar from "../Navbar/index"; import React from "react"; const Main = () => { return ( <React.Fragment> <Navbar/> </React.Fragment> ); }; export default Main;

Detta är navbar.js

import { useRef } from 'react'; import { FaBars, FaTimes } from 'react-icons/fa'; import './styles.module.css'; function Navbar(){ const navRef = useRef(); const handleLogout = () => { localStorage.removeItem("token"); window.location.reload(); }; const showNavbar = () => { navRef.current.classList.toggle("responsive_nav"); } return( <header> <h3>Logo</h3> <nav ref={navRef}> <a href="/#">Hem</a> <a href="/#">Nyheter</a> <a href="/#">Forum</a> <a href="/#">Kontakt</a> <a href="/#" onClick={handleLogout}>Logga Ut</a> <button className="nav-btn nav-close-btn" onClick={showNavbar}> <FaTimes /> </button> </nav> <button className="nav-btn" onClick={showNavbar}> <FaBars /> </button> </header> ); } export default Navbar;

samt css för navbar:

*{ padding: 0; margin: 0; box-sizing: border-box; } :root{ --mainColor: #006390; --mainColorLight: #5767aa; --sedondaryColor: #DB2839; --textColor: #eee; } header{ display: flex; align-items: center; justify-content: space-between; height: 80px; padding: 0 2rem; background-color: var(--mainColor); color: var(--textColor); } nav a{ margin: 0 2rem; color: var(--textColor); text-decoration: none; } nav a:hover{ color: var(--sedondaryColor); } header .nav-btn{ padding: 5px; cursor: pointer; background: transparent; border: none; outline: none; color: var(--textColor); visibility: hidden; opacity: 0; font-size: 1.8rem; } @media only screen and (max-width: 1024px){ header .nav-btn{ visibility: visible; opacity: 1; } header nav{ position: fixed; top: 0; left: 0; height: 100%; width: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.5rem; background-color: var(--mainColor); transition: 1s; transform: translateY(-100vh); } header .responsive_nav{ transform: none; } nav .nav-close-btn{ position: absolute; top: 2rem; right: 2rem; } nav a{ font-size: 1.5rem; } }

Läste nånstans att id kan va bra att ha med, tänkte höra era tankar först!

Du verkar prata om navbar.js men du importerar index.js.

Eller exporterar du navbaren från index.js?

Permalänk
Skrivet av JeanC:

Du verkar prata om navbar.js men du importerar index.js.

Eller exporterar du navbaren från index.js?

Sorry, mappen är navbar men navbar filen jag vill importera är index.js i navbar mappen, js funktionen för exempelvis att logga ut fungerar men inte för att toggle mina buttons

Permalänk
Medlem

Förstår inte. Vad är det som inte funkar tycker du?

https://codesandbox.io/s/thirsty-lumiere-rp4jzu?file=/src/App...

Tog bara copy and paste och ser inte vad det är som inte skulle funka

Permalänk
Skrivet av timerx:

Förstår inte. Vad är det som inte funkar tycker du?

https://codesandbox.io/s/thirsty-lumiere-rp4jzu?file=/src/App...

Tog bara copy and paste och ser inte vad det är som inte skulle funka

Ja, så som det fungerar i sandboxen är ju så jag vill det ska fungera, problemet är att när jag klickar på ikonerna så händer ingenting, o jag vet inte riktigt var felet sitter eftersom det som du säger, fungerar.

Permalänk
Medlem
Skrivet av PapaDiouf:

Ja, så som det fungerar i sandboxen är ju så jag vill det ska fungera, problemet är att när jag klickar på ikonerna så händer ingenting, o jag vet inte riktigt var felet sitter eftersom det som du säger, fungerar.

Låter som att det är något som ligger och "muppar" sig
Utan kodbasen så blir det nog svårt att säga vad det är.

Enda tips jag kan komma med är old-school debug och slänga in en console.log(navRef.current) för att se vad current är och om det händer något med klasserna på den när du klickar.

Permalänk
Skrivet av timerx:

Låter som att det är något som ligger och "muppar" sig
Utan kodbasen så blir det nog svårt att säga vad det är.

Enda tips jag kan komma med är old-school debug och slänga in en console.log(navRef.current) för att se vad current är och om det händer något med klasserna på den när du klickar.

Haha lite så! Ska se om jag kan hitta problemet. För funktionen för att logga ut fungerar(handleLogout), dock inte showNavbar funktionen, och button klasserna svarar inte på cssen heller..

Permalänk
Skrivet av PapaDiouf:

Haha lite så! Ska se om jag kan hitta problemet. För funktionen för att logga ut fungerar(handleLogout), dock inte showNavbar funktionen, och button klasserna svarar inte på cssen heller..

Okej, lösningen här var: bytte namn på css filen jag anropa och vips..