Ошибка типа: страница "..." имеет недопустимый экспорт "по умолчанию": тип "..." недействителен в Next.js

У меня есть функциональный компонент для страницы регистрации. Я пытаюсь объявить реквизиты для этого компонента, чтобы передать ему соответствующие значения из другого компонента. Вот что я делаю:

export default function SignupPage({mode = 'patient'} : {mode: 'patient' | 'doctor'}) {
 {/* CODE FOR SIGNUP PAGE HERE */}
}

Как видно из кода, я хочу, чтобы значение по умолчанию для mode было patient. Это всегда должно быть одно из patient или doctor.

Когда я запускаю этот код с помощью npm run dev, все работает нормально. В ту минуту, когда я пытаюсь построить с помощью npm run build, я получаю следующую ошибку:

- info Linting and checking validity of types ...Failed to compile.

app/signup/page.tsx
Type error: Page "app/signup/page.tsx" has an invalid "default" export:
  Type "{ mode: "patient" | "doctor"; }" is not valid.

Я пробовал несколько вещей, таких как объявление interface и type с mode: 'patient' | 'doctor';. Всегда выдает одну и ту же ошибку.

Любая помощь и руководство будут высоко оценены 🙏🏼

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
87
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как вы можете прочитать в документе , экспорт по умолчанию page.tsx в каталог app может иметь только тип, похожий на:

interface PageProps {
  params: { slug: string };
  searchParams: { [key: string]: string | string[] | undefined };
}
export default function Page({ params, searchParams }: PageProps) {
 // ...
}

params и searchParams — это единственные типы, которые вы можете указать, и они будут переданы вашему компоненту с помощью Next.js. Вы не должны пытаться сами вызывать страницу в другом компоненте.

Если вы хотите этого, вы должны преобразовать его в обычный компонент и, возможно, переместить его в отдельный файл и импортировать оттуда, куда хотите.

Это действительно полезно! Если я хочу, чтобы что-то вроде переключателя в page.tsx менялось в зависимости от того, с какой страницы они пришли, что бы вы порекомендовали? Будут ли параметры запроса в URL хорошим выбором?

bingalooo 05.06.2023 13:32

Рад, что смог помочь! Да, в этом случае может иметь смысл строка параметра запроса.

Youssouf Oumar 05.06.2023 13:43

Цените помощь! Параметры запроса работали отлично :)

bingalooo 05.06.2023 13:50

Другие вопросы по теме