我对 SSR 和
useTransition
React hook 都比较陌生。
有人可以解释一下为什么下面定义的
onClick
回调只能在 startTransition
内工作吗?
'use client';
const [isPending, startTransition] = useTransition();
const _skipAction = useCallback((e: React.MouseEvent) => {
e.preventDefault();
// This works
startTransition(async () => {
redirect('/');
});
// This doesn't work - click event is ignored
// redirect('/');
}, []);
在使用
next.js
一段时间后,我对事情有了进一步的了解。仍然需要更好的解决方案,但由于 next.js
中的路由是在服务器端处理的,因此 setTransition
允许应用程序在 client
组件内切换上下文。