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

272
Visualizações
Cómo compartir el estado entre los componentes de NextJS

Quiero pasar un estado entre páginas en Next.js. Mi App.js está envuelto en un proveedor de contexto así

 import { useRouter } from 'next/router' import { ClickProvider } from '../context/clickContext' function MyApp({ Component, pageProps }) { const router = useRouter() return ( <ClickProvider> <Component {...pageProps} key={router.asPath} /> </ClickProvider> ) } export default MyApp

Aquí está mi proveedor de contexto

 import { createContext, useState } from 'react'; const MenuContext = createContext() export const ClickProvider = ({ children }) => { const [menuEnterPage, setMenuEnterPage] = useState(''); return ( <MenuContext.Provider value={[menuEnterPage]}> {children} </MenuContext.Provider> ); }; export default MenuContext;

Dentro de mi componente de encabezado, quiero configurar menuEnterPage para que sea la ruta de la página en la que el usuario tocó el botón y que los datos persistan entre las páginas.

 import Link from 'next/link' import React, { useContext, useState, useEffect, useRef } from "react"; import { useRouter } from "next/router" import MenuContext from '../context/clickContext'; export default function Header({mobileHidden, router = useRouter()}) { const [isActive, setActive] = useState(mobileHidden); const [menuEnterPage, setMenuEnterPage] = useContext(MenuContext); const handleToggle = () => { setActive(!isActive); if (isActive) { } else { setMenuEnterPage(router.asPath) console.log(menuEnterPage) } }; return ( <header> <button className="md:hidden" onClick={handleToggle}>{isActive ? "Menu" : "Exit" }</button> </header> ); }

Actualmente, cuando ejecuto el proyecto y hago clic en el botón, falla con un error

TypeError: setMenuEnterPage no es una función

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

0

Intenta cambiar esto

 <MenuContext.Provider value={[menuEnterPage]}>

a esto

 <MenuContext.Provider value={[menuEnterPage, setMenuEnterPage]}>
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