我目前正在使用Apollo
for React学习GraphQL
,我有一个问题,但无法在线找到答案:我已经完成了一个表单来发送数据给我的mongoDB,我有这样的查询:
const addContactMutation = gql`
mutation($name: String!, $address: String!, $vat: Int!, $zip: String!, $email: String!, $contact: Int!){
addContact(name: $name, address: $address, vat: $vat, zip: $zip, email: $email, contact: $contact){
name
vat
email
}
}
`
然而,我的$vat
和$contact
是大数字,当提交表单时,我收到此错误:
变量“$vat”获得无效值“232214336”;应为类型Int。Int不能表示非整数值
我应该用哪种型号?
5条答案
按热度按时间tpxzln5u1#
232214336
不是很大,最大整数是9007199254740991
我认为问题在于您传递了一个字符串值
"232214336"
,而Int值是预期值,错误为Expected type Int
,因此您需要在使用parseInt()
将变量传递给变体之前或之时将该值转换为整数5fjcxozz2#
当数据库字段类型为整数,包含NULL值,并且GraphQL查询返回该字段时,也会发生此错误。解决此问题的一种方法是设置数据库,为整数字段提供默认值,以便在创建行时它们永远不会为NULL。
s71maibg3#
我以前遇到过这个问题,我通过以下方法解决了它:首先,我检查了前端中的类型顺序是否与graphql-types中的相同,然后在input表单中,我替换了:目标值依据:目标.值作为数字
qmb5sa224#
我也遇到了一个类似的奇怪的问题,因为graphql-request版本
3.1.4
清楚地提到了类型,但变量中不接受类型,我再次将它们Map到一个变量中,到目前为止,我的端是工作的。bq3bfh9z5#
我在我的Graphql +NestJs应用程序中也遇到了同样的错误。我所做的是将图形字段类型从Int更改为Float。