Ошибка: недопустимый узел AST: {input: "**} при мутации graphql (клиент Amplify)

Я попытался использовать пример схемы в api doc ("https://aws-amplify.github.io/docs/cli-toolchain/graphql?sdk=js "), как показано ниже, о подключениях" многие ко многим ".

type Post @model {
  id: ID!
  title: String!
  editors: [PostEditor] @connection(keyName: "byPost", fields: ["id"])
}

# Create a join model and disable queries as you don't need them
# and can query through Post.editors and User.posts
type PostEditor
  @model(queries: null)
  @key(name: "byPost", fields: ["postID", "editorID"])
  @key(name: "byEditor", fields: ["editorID", "postID"]) {
  id: ID!
  postID: ID!
  editorID: ID!
  post: Post! @connection(fields: ["postID"])
  editor: User! @connection(fields: ["editorID"])
}

type User @model {
  id: ID!
  username: String!
  posts: [PostEditor] @connection(keyName: "byEditor", fields: ["id"])
}

Я создал все элементы, а затем попытался удалить их, но мне это не удалось, особенно в PostEditor.

Есть мутация для удаления PostEditor, поэтому я назвал ее, как показано ниже

API.graphql (graphqlOperation ((deletePostEditor, {input: {id},})))

Это не срабатывает с сообщением об ошибке ниже.

Ошибка: недопустимый узел AST: {"input": "b2f7064c-af32-49cd-8c87 - *******"}

Я думаю, что предоставил правильный идентификатор. Я проверил это по запросу.


person MinLoveSu    schedule 29.12.2019    source источник
comment
можно ли поделиться кодом на стороне клиента, deletePostEditor   -  person Alex    schedule 29.12.2019
comment
код генерируется усилением кодогенерации. код такой, как показано ниже.   -  person MinLoveSu    schedule 02.01.2020
comment
экспорт const deletePostEditor = mutation DeletePostEditor( $input: DeletePostEditorInput! $condition: ModelPostEditorConditionInput ) { deletePostEditor(input: $input, condition: $condition) { id postID editorID post { id title editors { nextToken } labels { nextToken } } editor { id username posts { nextToken } } } } ;   -  person MinLoveSu    schedule 02.01.2020


Ответы (1)


Вы должны передать свои параметры как второй параметр graphqlOperation. Итак, проверьте свои скобки
API.graphql(graphqlOperation((deletePostEditor, {input: {id},}))), у вас есть одна пара дополнительных скобок

ниже правильный
API.graphql(graphqlOperation(deletePostEditor, { input: { id } }))

  • первый параметр = deletePostEditor
  • второй параметр = {input: {id}}

крошечная ошибка, не так ли?

person Alex    schedule 02.01.2020
comment
Мне стыдно за свою ошибку ... Не надо выключать eslint или внимательно смотреть код .... - person MinLoveSu; 05.01.2020
comment
это случилось со всеми нами, не волнуйтесь :-) - person Alex; 05.01.2020