我有这样的变异-
import gql from "graphql-tag";
const completedAt = new Date().toISOString();
export const CREATE_TODO = gql`
mutation($body: String!, $completedAt: DateTime = completedAt) {
createTodo(input: { body: $body, completed_at: $completedAt }) {
id
body
}
}
`;当我称这种突变为错误时
GraphQL错误:$completedAt的默认值与React中的DateTime类型不匹配
我该怎么解决这个问题?我也试过JSON.stringify(new Date().toISOString()),但没有运气。
另外,请注意,这是可行的-
import gql from "graphql-tag";
const completedAt = JSON.stringify(new Date().toISOString());
export const CREATE_TODO = gql`
mutation($body: String!) {
createTodo(input: { body: $body, completed_at: ${completedAt} }) {
id
body
}
}
`;发布于 2018-08-10 07:29:11
我改变了解决方案。现在,我所做的就是不像那样使用completedAt。我将它作为GraphQL变量的输入,如下所示:
import gql from "graphql-tag";
export const CREATE_TODO = gql`
mutation createTodo($body: String!, $completedAt: DateTime) {
createTodo(input: { body: $body, completed_at: $completedAt }) {
id
body
completed_at
}
}
`;然后,由于$completedAt不是required字段,所以如果我不想要任何值,就发送null,或者如果我想要有当前时间,就发送new Date().toISOString()。
例如:
不完全Todo,即DateTime的空值
mutate({
query: CREATE_TODO,
variables: { body: "Incomplete todo", completedAt: null }
});完成Todo,即DateTime的当前时间
mutate({
query: CREATE_TODO,
variables: { body: "Complete todo", completedAt: new Date().toISOString() }
});https://stackoverflow.com/questions/51696420
复制相似问题