当前位置: 首页 > news >正文

威海建设银行网站网站建设 书

威海建设银行网站,网站建设 书,广州外贸企业网站建设,支付宝手机网站支付原文链接 CSDN 的排版/样式可能有问题#xff0c;去我的博客查看原文系列吧#xff0c;觉得有用的话#xff0c;给我的库点个star#xff0c;关注一下吧 上一篇【Next.js 项目实战系列】04-修改 Issue 删除 Issue 添加删除 Button​ 本节代码链接 这里我们主要关注布局…原文链接 CSDN 的排版/样式可能有问题去我的博客查看原文系列吧觉得有用的话给我的库点个star关注一下吧  上一篇【Next.js 项目实战系列】04-修改 Issue 删除 Issue 添加删除 Button​ 本节代码链接 这里我们主要关注布局的问题我们调整 Grid 的 columns 与第一个 Box 的设置使得在小设备上两个 Box 上下排布在中等及以上左边 Box 占屏幕 80% # /app/issues/[id]/page.tsxconst IssueDeatilPage async ({ params }: Props) {...return (Grid columns{{ initial: 1, sm: 5 }} gap5Box classNamemd:col-span-4IssueDetails issue{issue} //BoxBoxFlex directioncolumn gap3EditIssueButton issueId{issue.id} /DeleteIssueButton issueId{issue.id} //Flex/Box/Grid);};export default IssueDeatilPage;其次在 layout.tsx 中将 main  中所有内容用 Radix UI 中的 Container 包起来以实现居中最终显示效果如下 添加确认框​ 本节代码链接 # /app/issues/[id]/DeleteIssueButton.tsxuse client; import { AlertDialog, Button, Flex } from radix-ui/themes; import { Cross2Icon } from radix-ui/react-icons;const DeleteIssueButton ({ issueId }: { issueId: number }) {return (AlertDialog.RootAlertDialog.TriggerButton colorredCross2Icon /Delete Issue/Button/AlertDialog.TriggerAlertDialog.ContentAlertDialog.TitleConfirm Deletion/AlertDialog.TitleAlertDialog.DescriptionAre you sure you want to delete this? This action cannot be undone./AlertDialog.DescriptionFlex mt4 gap4AlertDialog.CancelButton variantsoft colorgrayCancel/Button/AlertDialog.CancelAlertDialog.ActionButton colorredDelete Issue/Button/AlertDialog.Action/Flex/AlertDialog.Content/AlertDialog.Root); }; export default DeleteIssueButton;显示效果如下 删除 Issue​ API​ 本节代码链接 # /app/api/issues/[id]/route.tsxexport async function DELETE(request: NextRequest,{ params }: { params: { id: string } } ) {const issue await prisma.issue.findUnique({where: { id: parseInt(params.id) },});if (!issue)return NextResponse.json({ error: Invalid Issue }, { status: 404 });await prisma.issue.delete({where: { id: issue.id },});return NextResponse.json({ status: 200 }); }连接​ 本节代码链接 # /app/issues/[id]/DeleteIssueButton.tsx...import axios from axios;import { useRouter } from next/navigation;const DeleteIssueButton ({ issueId }: { issueId: number }) {const router useRouter();const handleDelete async () {await axios.delete(/api/issues/ issueId);router.push(/issues);router.refresh();};return (...AlertDialog.ActionButton colorred onClick{handleDelete}Delete Issue/Button/AlertDialog.Action...);};export default DeleteIssueButton;处理 error​ 本节代码链接 # /app/issues/[id]/DeleteIssueButton.tsx...import { useState } from react;const DeleteIssueButton ({ issueId }: { issueId: number }) {const [error, setError] useState(false);const handleDeleteIssue async () {try {await axios.delete(/api/issues/ issueId);router.push(/issues);router.refresh();} catch (error) {setError(true);}};return (AlertDialog.Root.../AlertDialog.RootAlertDialog.Root open{error}AlertDialog.ContentAlertDialog.TitleError/AlertDialog.TitleAlertDialog.DescriptionThis issue could not be deleted/AlertDialog.DescriptionButtoncolorgrayvariantsoftmt4onClick{() setError(false)}OK/Button/AlertDialog.Content/AlertDialog.Root/);};export default DeleteIssueButton;效果如下在发生错误时会弹出这样一个框 优化用户体验​ 本节代码链接 和Button 优化技巧一章相同我们可以添加一个 Spinner 和 Disable 来优化用户体验 # /app/issues/[id]/DeleteIssueButton.tsx import { Spinner } from /app/components;const DeleteIssueButton ({ issueId }: { issueId: number }) {const [isDeleting, setDeleting] useState(false);const handleDeleteIssue async () {try {setDeleting(true);await axios.delete(/api/issues/ issueId);router.push(/issues);router.refresh();} catch (error) {setDeleting(false);setError(true);}};return (...AlertDialog.TriggerButton colorred disabled{isDeleting}Cross2Icon /Delete Issue{isDeleting Spinner /}/Button/AlertDialog.Trigger...);};export default DeleteIssueButton; CSDN 的排版/样式可能有问题去我的博客查看原文系列吧觉得有用的话给我的库点个star关注一下吧   下一篇讲身份验证 【Next.js 项目实战系列】06-身份验证
http://www.w-s-a.com/news/986015/

相关文章:

  • 陕西营销型手机网站建设深圳制作网站服务
  • 受欢迎的锦州网站建设Wordpress 图片左右滑动
  • 湖南优化网站建设线上网站建设需求
  • 建什么类型的网站访问量比较大哪些外包公司比较好
  • php网站地图外贸建站哪家强外贸网站怎么做
  • 宁波五金网站建设中国建筑网官网投诉查询
  • 哪个网站注册域名便宜免费流程图制作网站
  • 潍坊做网站南宁网站seo优化公司
  • 网站建设的基本技术步骤无网站营销
  • 我国旅游网站的建设网站开发 混合式 数据库
  • 淘宝客网站域名家居网站开发项目计划书
  • 网站打不开显示asp苏州注册公司需要多少钱
  • 凡科建站登录官网wordpress主题有什么用
  • 西安双语网站建设怎么做网页动图
  • 宝安自适应网站建设无锡新区企业网站推广
  • 肇庆建设局网站cpanel 安装wordpress
  • 长春启做网站多少怎样换wordpress域名
  • 山西网站建设情况汇总vs2010 c 建设网站
  • 网站推广策划书 精品深圳市住建局和建设局官网
  • 住房和城乡建设部干部学院网站一般做公司网站需要哪几点
  • 网站制作流程详解(学做网站第一步)免费个人网站模版ps
  • 狮山网站建设公司微信平台软件开发
  • 绥芬河网站建设学网站开发的能找什么工作
  • 网站域名申请之后如何做网站微信公众号网页版登录入口
  • 网站优化图片省级精品课程网站
  • 婚纱摄影的网站模板怎么做网站自己当站长
  • 江西建设部网站wordpress弹出式广告
  • 工商年检在哪个网站做中国建设银行个人登录
  • seo做网站郑州巩义网站建设
  • 建设银行网站机构特点业务发展网站推广工作计划