我试图加载一个微调当用户点击导航到文章页面。微调应该加载,直到文章数据被提取,然后显示。有一个小延迟后,用户点击导航到页面,因此需要一个微调。
我有一个自定义的剪切器组件<Spinner />
,这就是我想要的数据被提取时显示。
在什么时候我设置加载为true
和false?
这是我的代码;
import { useState, useEffect } from "react";
import Recent from "../../components/sections/articles/recent";
import Color from "../../components/utils/page.colors.util";
import colors from "../../content/articles/_colors.json";
import settings from "../../content/_settings.json";
import Spinner from "../../components/sections/spinner/Spinner";
//
export default function Articles({ mediumArticles }) {
const [isLoading, setIsLoading] = useState(false);
return (
<>
{isLoading && <Spinner />}
<Color colors={colors} />
<Recent mediumArticles={mediumArticles} />
</>
);
}
// This gets called on every request
export async function getServerSideProps({ res }) {
res.setHeader(
"Cache-Control",
"public, s-maxage=600, stale-while-revalidate=59"
);
console.log(settings.username.medium);
const [mediumRSS] = await Promise.all([
fetch(
`https://api.rss2json.com/v1/api.json?rss_url=https://medium.com/feed/${settings.username.medium}`
),
]);
let [mediumArticles] = await Promise.all([mediumRSS.json()]);
return { props: { mediumArticles } };
}
字符串
2条答案
按热度按时间zi8p0yeb1#
你可以这样尝试:
字符串
kyvafyod2#
你需要使用setStaticPaths函数和使用回退概念,遵循文档,这样你就可以看到它是如何应用的:https://nextjs.org/docs/pages/api-reference/functions/get-static-paths
希望对你有帮助