reactjs - GraphQL - 数据不能是非输入类型...配置损坏?
问题描述
我似乎遇到了一个我无法弄清楚的问题。
Challenge
我在我的创建了一个新类型datamodel.prisma
:
type Challenge {
id: ID! @id
createdAt: DateTime! @createdAt
updatedAt: DateTime! @updatedAt
completed: Boolean! @default(value: false)
title: String!
}
我的变异解析器
# import * from './generated/prisma.graphql'
type Mutation {
createChallenge(title: String!): Challenge!
}
长这样prisma.graphql
:
type Mutation {
createChallenge(data: ChallengeCreateInput!): Challenge!
}
input ChallengeCreateInput {
id: ID
completed: Boolean
title: String!
}
我正在使用操场创建数据库条目(当我为此创建前端逻辑时问题仍然存在):
mutation {
createChallenge(title: "Test Entry") {
id
title
}
}
最后,我的服务器端逻辑:
async createChallenge(parent, args, ctx, info) {
console.log(args);
const challenge = ctx.db.mutation.createChallenge(
{
data: {
...args,
},
},
info
);
console.log(challenge);
return challenge;
},
然后我在操场上收到以下错误:
{
"data": null,
"errors": [
{
"message": "Variable '$_v0_data' cannot be non input type 'ChallengeCreateInput!'. (line 1, column 22):\nmutation ($_v0_data: ChallengeCreateInput!) {\n ^",
"locations": [],
"path": [
"createChallenge"
]
}
]
}
我不明白这条消息是从哪里来的。通过将数据传播到data
.
我昨天遇到了一个问题,我的服务器端逻辑不会更新,即使在通过prisma reset
. 我的数据模型上有一个challenge
已删除的字段,但是在提交突变时,服务器仍然出错,说它缺少该字段。会不会跟那个有关系?
重要的是要知道,通常,每次你运行prisma deploy
并且没有什么要更新的时候,它会告诉你nothing to update
。目前,每次我运行时都会prisma deploy
添加和删除相同的字段。这应该只发生一次。
我如何让这个突变起作用?
解决方案
很可能您的问题与 ID 字段有关。您已将 id 定义为在 Prisma 模型中自动生成,即使您在输入类型中提供了该字段。因此,从输入中删除 ID 字段,然后尝试。
希望这可以帮助!让我知道!
推荐阅读
- javascript - 从 Bandsintown API 中提取数据
- oracle - 在 Oracle 视图中使用 Select 语句删除字符串
- c++ - 只需打印一次重复的数字/C++
- winapi - MFC CEdit 输入在 4k 分辨率下将文本限制为 10 个字符
- php - PHP 7.2 到 php 7.3 (7.4) 升级碳时区更改
- java - 使用 Antlr4 解析 PlSQL 时如何提取带有语法错误的行
- scala - 如何使用 Scala 反射/镜像调用 Databricks dbutils
- python - 为什么我收到 OSError:[WinError 193] %1 不是有效的 Win32 应用程序
- fabricjs - SVG背景没有在fabricjs中填充画布
- docusignapi - 演示 Docusign Connect 通知“已发送”不起作用