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

250
Visualizações
TypeError: no se pueden leer las propiedades de nulo cuando se usa Locomotive Scroll con Next.js

Estoy tratando de usar el desplazamiento de la locomotora, pero aparece un error.

ingrese la descripción de la imagen aquí

Intento usar react-locomotive-scroll pero obtengo el mismo error

Mi _app.tsx se ve así

ingrese la descripción de la imagen aquí

¿Dónde está mi error? Trato de poner un componente de diseño interno que envuelve toda la página, pero tampoco funcionó.

 import type { AppProps } from "next/app"; import { ThemeProvider, Global } from "@emotion/react"; import { theme } from "../src/common/theme"; import { globalStyles } from "../src/styles/global"; import { appWithTranslation } from "next-i18next"; import "locomotive-scroll/dist/locomotive-scroll.css"; import { useEffect } from "react"; function MyApp({ Component, pageProps }: AppProps) { useEffect(() => { let scroll; import("locomotive-scroll").then((locomotiveModule) => { scroll = new locomotiveModule.default({ el: document.querySelector("[data-scroll-container]"), smooth: true, smoothMobile: false, resetNativeScroll: true, }); }); // `useEffect`'s cleanup phase return () => scroll.destroy(); }); return ( <ThemeProvider theme={theme}> <Global styles={globalStyles(theme)} /> <Component {...pageProps} data-scroll-container /> </ThemeProvider> ); } export default appWithTranslation(MyApp);

También uso next-transpile-modules

 const withTM = require("next-transpile-modules")(["gsap", "locomotive-scroll"]);
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Lo que funcionó para mí fue hacer esto:

 useEffect(() => { ;(async () => { try { const LocomotiveScroll = (await import('locomotive-scroll')).default const dataScrollContainer = document.querySelector( '[data-scroll-container]', ) if (!dataScrollContainer) { console.warn( 'locomotive-scroll: [data-scroll-container] dataset was not found. You likely forgot to add it which will prevent Locomotive Scroll to work.', ) } window.locomotive = new LocomotiveScroll({ el: dataScrollContainer ?? undefined, smooth: true, }) } catch (error) {} })() return () => { window.locomotive?.destroy() } }, [])

Y tenga un div con data-scroll-container en alguna parte. Entonces, en lugar de cargarlo directamente, hágalo asíncrono.

about 4 years ago · Juan Pablo Isaza Relatório

0

El error ocurre porque ningún elemento con el atributo data-scroll-container está presente en el DOM.

Establecer data-scroll-container en Component en realidad no agrega el atributo a ningún elemento. El Component es un componente React, no un elemento HTML.

Debe agregar un nuevo elemento que envuelva el Component y establecer el atributo en su lugar.

 <div data-scroll-container> <Component {...pageProps} /> </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