使用aws-amplify+graphql+react时遇NonNull类型空值强制转换错误
问题解析与修复
你的错误是因为GraphQL变量传递方式错误,导致input变量实际为null,触发了NonNull类型的校验报错。
错误原因
API.graphql的第二个参数并非变量对象,变量需要作为graphqlOperation的第二个参数传入。你当前的写法相当于没有给requestApproval mutation传入任何变量,自然会提示input为Null。
修复代码
修改saveCardLambda函数中的调用逻辑:
export async function saveCardLambda(id: string) { try { const lambdaResponse = await API.graphql( graphqlOperation(requestApproval, { input: { id } }) ); return lambdaResponse } catch (error) { throw error; } }
额外检查项
- 确认调用
saveCardLambda时传入的id不是null或undefined(虽然TypeScript声明为string,但运行时仍需保证实际值有效) - 核对
schema.graphql中的SaveCardInput定义与代码中的变量结构完全一致(当前结构匹配,无需调整)
内容的提问来源于stack exchange,提问作者JimmyTheCode
相关产品推荐
相关产品推荐

