Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

157
Visualizações
Verifique el componente React de tamaño de Windows

Lo que básicamente estoy tratando de crear es una barra de navegación que tiene dos jerarquías html completamente diferentes según el tamaño de la ventana. Quiero que sea diferente para dispositivos móviles que para una versión de escritorio. por ejemplo, una barra de navegación que está a la derecha en el escritorio y una que está en la parte superior para dispositivos móviles.

Un simple estado de lo que estaba haciendo. Creé una const que usaría un estado del tamaño de la pantalla. useState() para obtener un valor predeterminado por ahora, pero sé que si primero estaba cargando en el escritorio y estaba predeterminado en el dispositivo móvil. Tendría que cambiar el tamaño primero para obtener la versión de escritorio.

 const [sizeState, setSizeState] = useState("mobile"); const changeNavbar = () => { if (window.innerWidth <= 900) { setSizeState("mobile"); } else { setSizeState("desktop"); } }; window.addEventListener('resize', changeNavbar);

sizeState luego llamaría a una función if para determinar en qué estado está configurado actualmente.

 if (sizeState === "mobile") { return ( //some code for mobile) } else { // return some code for desktop }

por ahora, siempre devuelve la versión móvil, incluso si se carga en un ancho interior superior a 900 y solo al cambiar el tamaño haría algo. He estado tratando de usar un material de carga y un detector de eventos que escucharía la carga. pero no puedo llamar a la función changeNavbar en la primera carga de la página.

Vi gente recomendando usein useMediaQuerry pero no sé cómo hacer que funcione en función de mi if (mediaquery is set to md) { return( mobile navbar) }

si alguien pudiera ayudarme a usar useMediaQuerry en esto en lugar de mi intento anterior, para que pueda tener dos retornos separados, ¡también estaría muy agradecido por la ayuda!

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

  1. Simplemente puede implementarlo utilizando paquetes de componentes con estilo y puntos de interrupción con estilo y su API de ganchos.

    Aquí hay un ejemplo: https://codesandbox.io/s/styled-breakpoints-n8csvf

 import { down } from "styled-breakpoints"; import { useBreakpoint } from "styled-breakpoints/react-styled"; export default function App() { const isMobile = useBreakpoint(down("sm")); return ( <div className="App"> {isMobile ? "Mobile View" : "Desktop View"} </div> ); }

  1. O puede crear ganchos personalizados como este: https://codesandbox.io/s/react-hooks-usewindowsize-5ypkqr

 import useWindowSize from "window-size-hook"; export default function App() { const { width, height } = useWindowSize(); return ( <div className="box"> <h1>useWindowSize Hook</h1> <p> height: {height} <br /> width: {width} </p> </div> ); }

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda