用户登录

打开 posts/service 这个文件,在里面定义并且导出一个删除内容用的函数,名字是 deletePostById,用 async 标记一下这个函数,它需要一个 postId 参数,类型是 string 或者 number。

在函数里面声明一个 response,等于 await,用一下 apiHttpClient,接口地址是 posts/${postId},把请求用的 method 设置成 DELETE。最后返回的东西是 response.json()。

删除

打开 post-toolbar 这个组件,在组件里声明一个 router,用一下 useRouter,它来自 next/navigation 这个包。

然后在组件的视图里再添加一个删除内容用的小图标,一组 div,里面用一下 Image 组件,src 是 /icons/delete.svg ,alt 属性的值是“删除内容”,width 是 20,height 也是 20 ,绑定 onClick 事件,用 async 标记一下事件处理器,在里面 await 执行一下 deletePostById,提供一个 postId 参数。

删除了内容以后,再执行一下 router.refresh() 这个方法。

use client

因为在组件里处理了事件,所以我们需要把这个组件转换成一个客户端组件,在文件顶部,用一下 use client 这个指令。

测试

然后在浏览器我们可以测试一下,打开内容列表页面,找到想要删除的当前用户发布的内容,点击这个删除小图标,会执行 deletePostById ,把这个内容删除掉。

删除内容《 Next.js:内容管理 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点