我有一个项目,我使用 graphql
并且需要提供日期思想 graphql
,当我使用 String
时,类型日期在解析器中正确显示,但是当我在解析器中使用 scalar Date
时,我得到了 false
intead date。在文档中找不到任何东西。提供的日期为 2018 年 1 月 11 日星期三 21:30:00
。我应该安装 moment
因为我收到警告 eprecation warning: value provided is not in a recognized RFC2822 or ISO format. moment 构造回退到 js Date()
并且我不在我的项目中使用 moment
。
/*---- doesn't work ----*/
scalar Date
type Event {
id: ID!
title: String!
dateStart: Date!
dateEnd: Date!
users: [User]
room: Room
}
input EventInput {
title: String!
dateStart: Date!
dateEnd: Date!
}
/*---- works ----*/
type Event {
id: ID!
title: String!
dateStart: String!
dateEnd: String!
users: [User]
room: Room
}
input EventInput {
title: String!
dateStart: String!
dateEnd: String!
}
最佳答案
您必须在解析器中解析自定义标量日期
Date: {
__serialize(value) {
return value; // value sent to the client
},
__parseValue(value) {
return value;
},
__parseLiteral(ast) {
return JSON.parse(JSON.stringify(ast)).value;
}
}
将此添加到您的解析器中。这可能会解决您的问题
关于javascript - 为什么标量日期 GraphQL 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48199003/