我是graphql的新手,正在尝试为我的用户属性之一设置一个字段,该字段不仅仅是String
或Int
。它应该是对一个对象的引用,据我所知,该对象应该是type
或input
这是我的模式:
type Mutation {
addOrChangeUserDetails(location: String, coordinates: LocationCoordinateInput): LocationCoordinates
}
type LocationCoordinates {
lat: Int!
long: Int!
}
input LocationCoordinateInput {
coordinates: LocationCoordinates
}
这是我的查询
import gql from 'graphql-tag';
const ADD_OR_CHANGE_USER_DETAILS_MUTATION = gql`
mutation ADD_OR_CHANGE_USER_DETAILS_MUTATION(
$location: String,
$coordinates: LocationCoordinates
) {
addOrChangeUserDetails(
location: $location,
coordinates: $coordinates
) {
location
coordinates
}
}
`;
我遇到的错误是:
错误:LocationCoordinateInput.coordinates的类型必须为Input 输入但得到:LocationCoordinates。
我本来没有LocationCoordinateInput
的单独条目,并以为我可以将LocationCoordinates
类型用作我的addOrChangeUserDetails
参数,但是在研究了这个问题之后,似乎我想要引用的内容将不仅仅是String
或Int
等,那么我需要创建一个自定义输入。
这是创建“更丰富”字段的正确方法吗?如果是,为什么我的代码无法正常工作?