在Codex中实现图片预览组件需用Image模块与Modal组合:先定义含src、alt、width、height的图片数组;再用Image配合onClick或Button包裹渲染缩略图,确保可访问性;最后通过受控Modal展示大图,并设onClose重置状态及shouldCloseOnOverlayClick=true。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在Codex中制作图片预览组件,需利用其内置的Image模块与Modal交互逻辑组合实现点击缩略图后全屏查看大图的功能,不依赖外部React状态管理或自定义CSS类名。
准备基础图片数据结构
创建一个符合Codex规范的图片数组,每个对象必须包含src(必填)、alt(建议填写)、width和height(用于服务端渲染占位)字段。
这一步不可跳过,Codex的Image组件会校验src是否存在,缺失时直接渲染空白占位符且无控制台警告。
示例数据结构:[{ src: "/img/photo-1.jpg", alt: "会议现场", width: 300, height: 200 }]。
渲染可点击的缩略图列表
使用Codex.Image组件配合onClick事件绑定打开模态框的逻辑,注意不能直接传入href或to属性——Codex的Image不支持原生跳转语义。
为每张缩略图添加role="button"和tabIndex="0",否则键盘用户无法聚焦触发点击。
通过本地 Codex 或 OpenClaw OAuth 凭证直接调用 ChatGPT/Codex Responses 的 image_generation 工具来生成或编辑光栅图像,然后保存
方法一:内联事件处理
在JSX中直接写onClick={() => openModal(image.src)},其中openModal是已定义的模态框开启函数。
方法二:使用Codex.Button包裹Image
将Image作为Button的子元素,利用按钮的默认可访问性,避免手动补全role和tabIndex。
配置Modal展示大图
第一步:导入并初始化Codex.Modal组件,设置isOpen受控于本地状态变量(如isModalOpen)。
第二步:在Modal内部嵌套Codex.Image,传入当前选中图片的完整src、alt,并显式设置width="100%"和maxHeight="80vh"以适配不同屏幕尺寸。
第三步:为Modal添加onClose回调,在关闭时重置isModalOpen = false,否则模态框将无法再次打开。【必须执行此步,否则第二次点击缩略图Modal不再响应】
第四步:启用shouldCloseOnOverlayClick={true},允许用户点击遮罩层关闭弹窗,这是Codex Modal的默认行为,但显式声明可避免未来版本变更导致意外。

















