You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Amplify和GraphQL开发React应用时创建Note报错求助

使用Amplify+GraphQL创建Note时出错

我的GraphQL Schema

type Note @model @auth(rules: [ { allow: public } ] ){
  id: ID!
  name: String!
  description: String
  image: String
  noteBook: NoteBook!
}

type NoteBook @model @auth(rules: [ { allow: public } ] ){
  id: ID! 
  name: String! 
  notes: [Note!] 
}

相关函数代码

创建Notebook函数

async function handleCreateNoteBook(){
const data = {
  name: 'my 1st notebook'
}
await API.graphql({
  query: createNoteBook,
  variables: {input: data}
})
}

创建Note函数

async function handleCreateNote(){
    const data = {
      name: 'test',
      description: 'this is a test note',
      noteBook: 'my 2nd notebook'
    }
    await API.graphql({
      query: createNoteMutation,
      variables: {input: data}
    })
}

显示Notes函数

async function handleShow(){
    const noteBookData = await API.graphql({query: listNoteBooks})
    const notesData = await API.graphql({query: listNotes})
    console.log(noteBookData)
}

遇到的错误

[object Object]
at handleError (http://localhost:3000/static/js/bundle.js:80145:58)
at http://localhost:3000/static/js/bundle.js:80168:7

问题原因及解决办法

核心问题

创建Note时的noteBook字段传值逻辑错误:

  1. Schema中Note的noteBook: NoteBook!是关联类型,Amplify会自动为Note生成**noteBookId**字段作为外键,用来关联NoteBook的id,而非直接接收字符串名称或对象。
  2. 你当前传入的noteBook: 'my 2nd notebook'是字符串,既不符合NoteBook类型要求,也不是Amplify关联所需的外键值。

解决步骤

  1. 先通过handleShow函数获取已创建NoteBook的id:运行函数后查看控制台打印的noteBookData,找到目标Notebook的id值。
  2. 修改创建Note的代码,将noteBook字段替换为noteBookId,并传入正确的Notebook id:
async function handleCreateNote(){
    // 确保已创建对应Notebook并拿到它的id
    const data = {
      name: 'test',
      description: 'this is a test note',
      noteBookId: '替换为目标Notebook的id'
    }
    await API.graphql({
      query: createNoteMutation,
      variables: {input: data}
    })
}
  1. 确认createNoteMutation是Amplify自动生成的正确mutation,它的入参应包含noteBookId字段。

内容的提问来源于stack exchange,提问作者FloydK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 16:02:59