import { toast } from 'sonner' /** * 从 axios 错误中提取并显示错误信息,支持 Zod 校验失败时展示具体字段 */ export function toastError(err: any, fallback = '操作失败') { const error = err?.response?.data?.error if (!error) { toast.error(fallback) return } // 如果有 details(Zod 校验失败),展示具体字段 if (error.details && Array.isArray(error.details) && error.details.length > 0) { const fields = error.details.map((d: any) => `${d.path || '字段'}: ${d.message}`).join(';') toast.error(`${error.message}:${fields}`) return } toast.error(error.message || fallback) }