useTransition
当从完成返回时,我希望能够改变我自己的状态。也就是说,目前,在下面的示例中,isPending
从 true 切换到 false,但这还不够。我希望能够在该更改上执行代码。
也就是说,在下面的示例中,我希望可以做一些类似的事情useEffect
,并在挂起的事件发生更改时从执行返回的代码startTransition
,但这不起作用。
还有其他选择吗?
onClick={() => {
startTransition(() => {
const nextUserId = getNextId(resource.userId);
setResource(fetchProfileData(nextUserId));
return () => { DO THIS CODE WHEN PENDING BECOMES FALSE }
});
}}
function App() {
const [resource, setResource] = useState(initialResource);
const [startTransition, isPending] = useTransition({
timeoutMs: 3000
});
return (
<>
<button
disabled={isPending}
onClick={() => {
startTransition(() => {
const nextUserId = getNextId(resource.userId);
setResource(fetchProfileData(nextUserId));
});
}}
>
Next
</button>
{isPending ? " Loading..." : null}
<ProfilePage resource={resource} />
</>
);
}