跃问生成可运行代码需五步:①粘贴完整报错栈;②明确技术栈及版本;③还原用户操作与接口响应链路;④指定修复动作优先级并禁止惯性方案;⑤验证import、ts类型及编译通过。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你想用跃问快速生成可运行代码,但粘贴报错后AI只给通用解法、不补全函数签名、不校验依赖版本——问题出在提示词没带执行环境锚点和可观测行为路径。
第一步:把报错栈当提示词开头
复制控制台完整红字(含文件路径、行号、异常类型),直接粘贴到输入框最前面。例如:TypeError: Cannot read property 'map' of undefined at src/utils/data.js:12:30。
这一步跳过“请帮我分析以下代码”的铺垫——真实场景里没人先说客套话,开发者看到红字就立刻搜。
如果只写“数据为空报错”,AI会去查空值判断语法,而你真正卡在api/fetchUserList()返回结构变更导致res.data变成res.payload。
第二步:绑定技术栈与版本号
紧接报错后,用中文写死项目约束条件:“React 18.2 + TypeScript 5.1,状态管理用Zustand 4.5,所有API调用走useQuery封装”。
【版本信息不是可选补充——React 18的自动批处理和17的行为差异极大,漏掉版本等于丢掉关键解题线索】
不要写“较新版本”或“主流框架”,AI无法据此匹配真实依赖树。
第三步:还原用户操作链路
① 用户点击「刷新用户列表」按钮 → ② 页面白屏2秒 → ③ 控制台抛出上述TypeError → ④ 网络面板显示/api/v2/users返回{"code":200,"payload":[]}。
四步链路缺一不可。只写第③步会误导AI去查map语法,而真正问题是第④步接口字段从data改成payload,第②步没做响应体结构适配。
这一步操作起来很简单,直接把Network面板截图里的Response原文复制过来就行。
第四步:指定修复动作优先级
方法一:按顺序执行修复
① 在useUserList.ts中修改response.data.map为response.payload.map → ② 补充if (!response.payload) return []兜底 → ③ 不得改动useQuery配置项。
方法二:堵死AI惯性路径
禁止建议“全局替换data为payload”——该系统有12个API共用同一套响应模板,仅此接口变更字段名;禁止建议“改用Axios拦截器统一转换”,当前已启用SWR缓存策略,拦截器会破坏etag校验。
第五步:验证生成代码是否可用
拿到跃问输出的代码后,先检查import语句是否包含项目实际安装的包名,比如zustand/middleware而非zustand/vanilla。
再确认函数参数类型是否匹配TS定义,例如interface User { id: number; name: string }不能被替换成any。
最后把代码粘贴进VS Code,看是否触发TS编译错误——若有Property 'xxx' does not exist on type 'yyy',说明跃问没读取你的types.d.ts,需在提示词里补一句“请参考项目根目录下types.d.ts中的User接口定义”。










