Next.js выдаёт ошибку при попытке напрямую перейти на страницу localhost:3000/admin/login

Рейтинг: 0Ответов: 1Опубликовано: 28.03.2023

Я сейчас занимаюсь небольшим проектом, у которого есть админка со страницей логина, и при переходе на неё через другие страницы всё ок, но если прямо в поисковой строке вбить адрес localhost:3000/admin/login, то выскакивает ошибка

Server Error

ReferenceError: location is not defined

This error happened while generating the page. Any console logs will be displayed in the terminal window.

На самой странице используются собственные компоненты, но даже если их закомментировать, ошибка остаётся

Код страницы выглядит следующим образом:

import { useState } from 'react'
import { router } from 'next/client'

import styles from '@/styles/admin/login.module.scss'

import { auth } from '@/../api/services/admin/login'
import { Button } from '@/../components/button/button'
import { Input } from '@/../components/input/input'

export default function Login() {
    const [login, setLogin] = useState('')
    const [password, setPassword] = useState('')

    async function logIn() {
        await auth({
            login,
            password,
        })
        await router.push('/admin/orders')
    }

    return (
        <div className={styles.page}>
            <div className={styles.loginFormWrapper}>
                <Input value={login} onChange={setLogin} placeholder={'Логин'} wrapperClassName={styles.inputWrapper}/>
                <Input value={password} onChange={setPassword} placeholder={'Пароль'} wrapperClassName={styles.inputWrapper}/>
                <Button onClick={logIn} variant={'filled'}>Войти</Button>
            </div>
        </div>
    )
}

введите сюда описание изображения

подскажите, пожалуйста, с чем это может быть связано, и как это исправить?

Ответы

▲ 0

проблема была в строчке import { router } from 'next/client' и, собственно, в самом роутере. Вместо этого я использовала

import { useRouter } from 'next/router'
const router = useRouter()

надеюсь, это сможет ещё кому-нибудь помочь