es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

TypeError: No se pueden leer propiedades de nulo (leyendo ‘push’) en react.js

Quiero vincular una página interna a un <IconButton>, pero cuando intento hacerlo con <Link> o con onClick={() => router.push(Página)}, devuelve el mismo error: TypeError: No se pueden leer las propiedades de nulo (lectura de 'push'). ¿Cómo puedo resolver este problema? Aquí está el código:

import React from 'react'
import { useRouter } from 'next/router';
import { VStack, IconButton } from '@chakra-ui/react';
import { BsFillPersonFill, BsWrench, BsBriefcaseFill, BsEnvelopeFill } from 'react-icons/bs'
import About from './About';

function Navbar() {
    const router = useRouter()
    return (
        <vstack>

             <iconbutton onclick="{()" =&gt;="" router.push(about)}="" icon=""></iconbutton><bsfillpersonfill></bsfillpersonfill>} rounded="full" right="830" top="-300">
             <iconbutton icon=""></iconbutton><bswrench></bswrench>} rounded="full" right="830" top="-300">
             <iconbutton icon=""></iconbutton><bsbriefcasefill></bsbriefcasefill>} rounded="full" right="830" top="-300">
             <iconbutton icon=""></iconbutton><bsenvelopefill></bsenvelopefill>} rounded="full" right="830" top="-300">

        </vstack>
    )
}

export default Navbar
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para vincular una página interna a un IconButton en React utilizando Next.js y Chakra-UI, puedes hacer lo siguiente:

    1. Asegúrate de importar el componente Link de next/link:
    import Link from 'next/link';
    
    1. Envuelve tu componente IconButton en un componente Link y pasa el href de la página a la que deseas vincular:
    <link href="/about">
      <iconbutton icon=""></iconbutton><bsfillpersonfill></bsfillpersonfill>} rounded="full" right="830" top="-300">
    
    
    1. Si deseas utilizar el método router.push() en su lugar, asegúrate de pasar la ruta de la página como una cadena en lugar del componente en sí:
    <iconbutton onclick="{()" ==""> router.push('/about')} icon={<bsfillpersonfill></bsfillpersonfill>} rounded="full" right="830" top="-300"></iconbutton>
    

    Esto debería resolver el problema y permitirte vincular a páginas internas utilizando un IconButton en React con Next.js y Chakra-UI.

Comments are closed.