Ответы пользователя по тегу Next.js
  • Ошибка Failed prop type: Invalid prop `children` supplied to `ForwardRef(Box)`, expected a ReactNode. Что я делаю не так?

    Aetae
    @Aetae
    Тлен
    React так не умеет. Сам механизм react делает такое невозможным.
    Все компоненты синхронны(кроме lazy, но это совсем другое).
    Ты должен свою асинхронную функцию вызвать в useEffect, а пока она грузится показывать какой-нить лоадер.
    Ответ написан
    1 комментарий
  • Ошибка Error: Hydration failed because the initial UI does not match what was rendered on the server. Как исправить?

    Aetae
    @Aetae
    Тлен
    Очевидная проблема в том, что ты рендеришь страницу по разному в зависимости от свойств экрана юзера, однако сервер не знает ничего об юзерском экране, потому результат SSR и результат на клиенте - разный, что и вызывает ошибки гидрации.

    Красивого решения тут нет, только разные костыли, например:
    1. Первый раз рендерить компонент всегда одинаково, а потом уже обновлять по useEffect в зависимости от экрана. Простое решение которое сразу заработает, однако может привести к кратковременном миганию на клиенте при загрузке.
    1а. Вычислять по userAgent что у клиента мобила\планшет и первым рисовать наиболее вероятный вариант, а потом уже по useEffect использовать точный, если не угадали. Тоже самое но есть шанс что угадаем.
    2. Рисовать все варианты на странице, а скрывать тупо классами css не используя этой либы. Тоже сразу заработает, но на странице куча мусора.
    3. ?
    Ответ написан
    Комментировать
  • Почему файл недоступен после сборки next js?

    Aetae
    @Aetae
    Тлен
    Я с next не работаю, но вы же сами описали проблему, что у вас _next там где должен быть build. Возможно одна из переменных окружения у вас кривая, или .env файл. Если сходу не находится откуда взялся _next - можно минимально оформатировать в ide уже собранные файлы и поискать в них это _next, окружающий код скорее всего о чём-нить скажет вам.
    В общем обычный процесс дебага...

    А вообще вот что гугл выдаёт первой ссылкой по "next js _next".
    Т.е. путь /_next/static/chunks/ - это путь по умолчанию, если нужен иной - следует задать assetPrefix.
    Почему раньше работало? А хз, может оно и так лежало в папке _next, а вы её переименовали?
    Ответ написан
    Комментировать
  • Почему возникает такая ошибка NEXT JS 13?

    Aetae
    @Aetae
    Тлен
    Как ты используешь этот RegisterService?
    Чтоб он работал, как и написано в ошибке, он должен быть компонентом.
    Т.е. <RegisterService ...> или React.createElement(RegisterService, ...) .

    Второй вариант: он может быть не компонентом, а хуком. Тогда он должен вызываться внутри другого компонента, а также иметь префикс use - useRegisterService(отсутствие префикса не приведёт к ошибке, но это стандарт).

    Если ты просто вызываешь его где-то вне компонента как функцию - ничего работать не будет.
    Ответ написан
  • Как типизировать router.push(pathname)?

    Aetae
    @Aetae Куратор тега TypeScript
    Тлен
    Проверил чистую установку next 13.4.12 - такой проблемы нет.

    Где-то говняет типы роутера. Возможно у тебя отдельно в package.json подключена устаревшая в версия роутера - тогда удали её.
    Иначе тыкни Ctrl+Click на .push и тебе откроет файл с декларацией, если она не\не только в next/dist/shared/lib/app-router-context.d.ts - разбирайся откуда взялась левая.
    Ответ написан
    Комментировать
  • Как грамотно настроить алиасы импортов?

    Aetae
    @Aetae Куратор тега TypeScript
    Тлен
    Ну собсно по хардкору:
    1. Invalidate Caches если ещё не сделал.
    2. Закрыть, удалить папку .idea, открыть чтоб распарсил заново.
    3. Создать новый проект с заведомо рабочим конфигом и перекидывать туда кусками пока не сломается и так найти виновника.
    Ответ написан