Typ*_*hon 10 javascript reactjs next.js
'use client';
import { useRouter } from "next/navigation";
export default function Todo({ todo }) {
const router = useRouter();
return (
<>
<li key={todo.id}>
<input type='checkbox' checked={todo.isDone} onChange={(e) => update(todo.id, e.target.checked, router.refresh)}></input>
{todo.name}
<button onClick={() => todoDelete(todo.id, router)}>Delete</button>
</li>
</>
)
async function todoDelete(id, router) {
await fetch(`/api/todo/delete?id=${id}`, {
method: 'DELETE',
});
router.refresh();
}
}
Run Code Online (Sandbox Code Playgroud)
该代码似乎直接跳过了刷新()函数,但 API 调用的其余部分工作正常。有谁知道为什么我无法刷新吗?
小智 9
我也有类似的问题。就我而言,我router.refresh();首先router.push('/users')从更新页面导航回数据表。
然而,正确的实现应该是router.push('/users')先执行,然后执行router.refresh();。
小智 5
@阿德姆。useRouter是react hook,只能在客户端调用
useRouter.refresh 是https://nextjs.org/docs/app/api-reference/functions/use-router。
您可能正在谈论“next/router”中的 useRouter,它在 next13 中不可用
| 归档时间: |
|
| 查看次数: |
17894 次 |
| 最近记录: |