TypeError:无法读取 null 的属性(读取“推送”)react.js

Posted

技术标签:

【中文标题】TypeError:无法读取 null 的属性(读取“推送”)react.js【英文标题】:TypeError: Cannot read properties of null (reading 'push') react.js 【发布时间】:2022-01-16 13:14:46 【问题描述】:

我想将内部页面链接到<IconButton>,但是当我尝试使用<Link>onClick=() => router.push(Page) 执行此操作时,它返回相同的错误:TypeError: Cannot read properties of null (reading 'push')。我可以解决这个问题吗?代码如下:

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=() => router.push(About) icon=<BsFillPersonFill /> rounded="full" right="830" top="-300"></IconButton>
             <IconButton icon=<BsWrench /> rounded="full" right="830" top="-300" ></IconButton>
             <IconButton icon=<BsBriefcaseFill /> rounded="full" right="830" top="-300" ></IconButton>
             <IconButton icon=<BsEnvelopeFill /> rounded="full" right="830" top="-300" ></IconButton>

        </VStack>
    )


export default Navbar

【问题讨论】:

【参考方案1】:

它应该在 onClick 监听器上获取一个 URL,看来你提供了一个组件

像这样:

router.push('/about')

https://nextjs.org/docs/api-reference/next/router#routerpush

【讨论】:

我已经尝试过这样,它仍然给我这个错误:( @Saverioscagnoli 项目是否有/about url? 是的,我尝试将它移动到每个可能的文件夹中,但它仍然给了我错误 @SaverioScagnoli about 页面应位于 /pages/about.js 下,以便 router.push('/about') 正常工作。

以上是关于TypeError:无法读取 null 的属性(读取“推送”)react.js的主要内容,如果未能解决你的问题,请参考以下文章

TypeError:无法读取 null 的属性(读取“classList”)

TypeError:无法读取 null 的属性(读取“1”)

TypeError:无法读取 null 的属性“userID”

TypeError:无法读取 null 的属性(读取“classList”)反应

TypeError:无法读取 null 的属性“uid”

× TypeError: 无法读取 null 的属性“名称”