我正在努力寻找使用Suspense和React hooks的问题。
下面的 React 代码有几个关键问题。
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} />
</>
};
让我知道它们是什么。
我发现了两个关键问题。
- 滥用
setdata
依赖useEffect
数组 - 没有提供
suspense
fallback
道具。
我认为仍然存在一个关键问题。
一件奇怪的事情是为什么userId
需要包含在依赖数组中。