【发布时间】:2026-01-26 08:35:01
【问题描述】:
假设fetchUserProfile 在别处定义。
Suspense 的使用有什么问题吗?
import { Suspense, useState, useEffect } from 'react';
const SuspensefulUserProfile = ({ userId }) => {
const [data, setData] = useState({});
useEffect(() => {
fetchUserProfile(userId).then((profile) => setData(profile));
}, [userId, setData])
return (
<Suspense>
<UserProfile data={data} />
</Suspense>
);
};
const UserProfile = ({ data }) => {
return (
<>
<h1>{data.name}</h1>
<h2>{data.email}</h2>
</>
);
};
const UserProfileList = () => (
<>
<SuspensefulUserProfile userId={1} />
<SuspensefulUserProfile userId={2} />
<SuspensefulUserProfile userId={3} />
</>
);
【问题讨论】:
-
您希望这个
<Suspense>做什么?如果这就是您的意思,它根本不会与 fetchUserProfile 交互。 -
我是 Suspense 的新手,请您纠正我在使用 suspense 时所做的事情吗?
-
你的目标是什么?一旦我知道您要做什么,我就可以就如何做到这一点给您建议,而且很有可能建议是根本不使用 Suspense。您是否尝试在加载过程中加载数据并显示占位符?
-
是的,等待加载并显示微调器,但使用悬念
-
为什么要为此使用悬念?我强烈建议你不要使用 suspense 来加载数据,除非你真的知道自己在做什么。
标签: reactjs react-hooks react-suspense