Проблема в том, что когда я build Я получаю только результат рендеринга Loading
. Это работает в разработке. (который, я уверен, из-за горячей загрузки)
Как мне построить рендеринг (асин c) выборки данных для сборки? Я не хочу иметь это в componentDidMount()
или useEffect()
Потому что, насколько я понимаю, запрос будет на стороне клиента. это приведет к запросу API для каждой загрузки страницы, верно? Вместо этого я просто хочу один при сборке.
Могу ли я приостановить сборку / рендеринг, пока у него еще нет данных?
Ниже приведен упрощенный код
import React from "react"
import useSWR from "swr"
import client from "../../../../../sanityClient"
import BlockCarousel from "../blockCarousel/blockCarousel"
const BlockCarouselBlog = ({ block }) => {
const skip = 0
const limit = block.itemAmount ? block.itemAmount : 10
const params = { skip, limit: skip + limit - 1 }
let {
data,
error,
} = useSWR(
'*[_type == "blog"] | order(_createdAt asc) [$skip..$limit]',
query => client.fetch(query, params)
)
if (error) console.log(error)
if (!data) return <div>Loading</div>
block.blocks = data
return <BlockCarousel block={block} />
}
export default BlockCarouselBlog
.