API函数addNewJob中questions参数未定义,jobData正常,求排查
问题:无法将questions传递给addNewJob API函数,显示undefined
核心原因:参数顺序不匹配
你的API函数addNewJob和调用它的代码参数顺序完全颠倒,导致数据传递错位:
- API定义:
addNewJob(token, questions, jobData)→ 第二个参数是questions,第三个是jobData - 你在useFetch中的调用:
addNewJob(token, jobData, questions)→ 把jobData和questions的位置搞反了
这就导致API里的questions参数实际接收到的是jobData,而jobData参数接收到的是questions,调整顺序后又没统一,才出现混乱。
修复步骤
1. 修正useFetch中的调用参数顺序
把postJob.jsx里的useFetch回调改成和API定义一致的顺序:
const { loading: loadingCreateJob, error: errorCreateJob, data: dataCreateJob, fn: fnCreateJob, } = useFetch((token, questions, jobData) => addNewJob(token, questions, jobData) // 与API参数顺序对齐 );
2. 修正onSubmit中调用fnCreateJob的参数顺序
原来的调用传参顺序反了,改成:
const response = await fnCreateJob(questions, jobData);
额外检查
- 确认
questions状态在调用时已有正确数据(你的console.log已经能输出,这部分没问题) - API函数里的
return data;代码看起来未定义data变量,可能是贴代码时遗漏,需要补充完整实际的数据库操作逻辑
内容的提问来源于stack exchange,提问作者Ammar Anjum
相关产品推荐
相关产品推荐

