Страница Next.js работает на локальном хосте, но не на vercel

Я создаю блог для веб-сайта и только что завершил страницу результатов поиска. Когда я попробовал его на локальном хосте, он работал отлично, но когда я развернул его на верцеле, он вообще не работает. searchParams.query не определен в сети, потому что, когда я посещаю веб-страницу в Интернете, заголовок заголовка выглядит так: Searching for: undefined Вот мой код, который использует Sanity и Next 13:

import { getSearchResults } from "@/sanity/utils"
import Link from "next/link"
import { SearchBar } from "@/components"

export async function generateMetadata({ searchParams }) {
  return {
    title: `Searching for: ${searchParams.query}`
  }
}

export default async function SearchPage({ searchParams }) {
  const searchResults = await     getSearchResults(searchParams.query)

  return (
<main className = "mt-[70px] min-h-screen">
  <div className = "bg-byzantine-blue text-white py-10 px-5">
    <div className = "container mx-auto flex flex-col justify-center items-center">
      <h2 className = "text-lg md:text-xl mb-3 md:mb-5">Search results for:</h2>
      <SearchBar />
      <p className = "mt-2 text-text-blue text-lg">{searchResults.length} {searchResults.length === 1 ? 'article' : 'articles'}</p>
    </div>
  </div>
  <div className = "max-w-screen-web mx-auto py-10 px-6 md:px-10 flex flex-col gap-6 md:gap-10">
    {searchResults.map(article => (
      <Article key = {article.id} {...article} />
    ))}
  </div>
</main>
  )
}

const Article = ({ description, id, title }) => {
  return (
<article className = "border-solid border-[1px] flex flex-col items-center border-neutral-200 px-3 py-6">
  <h5 className = "text-xl font-medium text-center">{title}</h5>
  <p className = "mt-3 md:text-lg text-neutral-600 text-center max-w-4xl">{description}</p>
  <Link href = {`/blog/${id}`} className = "md:text-lg inline-block hover:bg-blue-500 mt-4 px-3 py-2 bg-byzantine-blue text-white">View article</Link>
</article>
  )
}

Это код компонента <Searchbar />:

"use client"
import React, { useState } from 'react'
import { useRouter, useSearchParams } from 'next/navigation'

export default function SearchBar() {
  const router = useRouter();
  const searchParams = useSearchParams();

  const search = useSearchParams().get('query')

  const [query, setQuery] = useState(search ? search : '');

  const handleSearch = () => {
    router.push(`/search?query=${query}`);
  }


  return (
    <div className='flex justify-center md:gap-4 gap-2  w-[80%] md:w-full max-w-xl mx-auto'>
      <input type = "text" placeholder='Search for articles:' className='bg-transparent py-2 border-solid border-[2px] border-blue-400 px-4 md:px-6 grow placeholder:text-text-blue outline-none text-white text-lg focus:bg-white focus:text-black focus:placeholder:text-neutral-400' value = {query} onChange = {(e) => setQuery(e.target.value)} />
      <button onClick = {handleSearch} className='bg-gold hover:bg-gold-hover px-4 md:px-6 text-lg text-white'>
    Search
  </button>
</div>
  )
}

Любая помощь приветствуется. Спасибо!

«не работает» не является подходящим подробным описанием, и вам будет очень трудно помочь, если вы не попытаетесь предоставить больше контекста: что не получается? в чем ошибка? лог можно прикрепить? и так далее.

Nir Alfasi 15.04.2023 19:26

Я проверил журнал Vercel, и он не показывает ошибок. Я немного улучшил вопрос. Если вы хотите просмотреть страницу в прямом эфире, мой сайт: lindritsulaj.vercel.app/blog

user3040230424 15.04.2023 19:28
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
171
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

После нескольких часов попыток найти решение я придумал следующее:

export const dynamic = 'force-dynamic'

Просто добавил это на page.js, и мне было хорошо идти.

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