我正在跟踪一个教程,其中老师在他的<xcdg:Column>
<xcdg:Column.CellContentTemplate>
<DataTemplate>
<xcdg:DataGridControl ItemsSource="{Binding Items2}">
<xcdg:Column FieldName="Id">
</xcdg:Column>
</xcdg:DataGridControl>
</DataTemplate>
</xcdg:Column.CellContentTemplate>
</xcdg:Column>
字段中使用String
类型,并建议如果需要,可以使用自定义标量类型来创建更强类型的{{1} }字段,因此我正尝试这样做。
我遇到以下错误:createdAt
这是有问题的代码:
DateTime
我已经添加了Error: Unknown type "GraphQLDateTime".
库,而VSCode的intellisense对此有所了解,所以我知道这不是问题。这也表明即使我引用了const { gql } = require('apollo-server')
const { GraphQLDateTime } = require('graphql-iso-date')
module.exports = gql`
type Post {
id: ID!
username: String!
body: String!
createdAt: GraphQLDateTime!
}
type User {
id: ID!
email: String!
token: String!
username: String!
createdAt: GraphQLDateTime!
}
input RegisterInput {
username: String!
password: String!
confirmPassword: String!
email: String!
}
type Query {
getPosts: [Post]
getPost(postId: ID!): Post
}
type Mutation {
register(registerInput: RegisterInput): User
login(username: String!, password: String!): User!
createPost(body: String!): Post!
deletePost(postId: ID!): String!
}
`
,也未在文件中的任何地方使用它。
我知道这可能是一个简单的解决方法,但是在NodeJS的上下文中,我还是NodeJS和GraphQL的新手。知道我在做什么错吗?还有另一种DateTime标量可能更可取(最佳做法始终是个好主意。)谢谢!
答案 0 :(得分:1)
使用'<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="127-0" class="displacy" width="750" height="224.5" style="max-width: none; height: 224.5px; color: #000000; background: #ffffff; font-family: Arial">\n<text class="displacy-token" fill="currentColor" text-anchor="middle" y="134.5">\n <tspan class="displacy-word" fill="currentColor" x="50">My</tspan>\n <tspan class="displacy-tag" dy="2em" fill="currentColor" x="50">ADJ</tspan>\n</text>\n\n<text class="displacy-token" fill="currentColor" text-anchor="middle" y="134.5">\n <tspan class="displacy-word" fill="currentColor" x="225">name</tspan>\n <tspan class="displacy-tag" dy="2em" fill="currentColor" x="225">NOUN</tspan>\n</text>\n\n<text class="displacy-token" fill="currentColor" text-anchor="middle" y="134.5">\n <tspan class="displacy-word" fill="currentColor" x="400">is</tspan>\n <tspan class="displacy-tag" dy="2em" fill="currentColor" x="400">VERB</tspan>\n</text>\n\n<text class="displacy-token" fill="currentColor" text-anchor="middle" y="134.5">\n <tspan class="displacy-word" fill="currentColor" x="575">Dhiraj.</tspan>\n <tspan class="displacy-tag" dy="2em" fill="currentColor" x="575">PROPN</tspan>\n</text>\n\n<g class="displacy-arrow">\n <path class="displacy-arc" id="arrow-127-0-0" stroke-width="2px" d="M70,89.5 C70,2.0 225.0,2.0 225.0,89.5" fill="none" stroke="currentColor"/>\n <text dy="1.25em" style="font-size: 0.8em; letter-spacing: 1px">\n <textPath xlink:href="#arrow-127-0-0" class="displacy-label" startOffset="50%" fill="currentColor" text-anchor="middle">poss</textPath>\n </text>\n <path class="displacy-arrowhead" d="M70,91.5 L62,79.5 78,79.5" fill="currentColor"/>\n</g>\n\n<g class="displacy-arrow">\n <path class="displacy-arc" id="arrow-127-0-1" stroke-width="2px" d="M245,89.5 C245,2.0 400.0,2.0 400.0,89.5" fill="none" stroke="currentColor"/>\n <text dy="1.25em" style="font-size: 0.8em; letter-spacing: 1px">\n <textPath xlink:href="#arrow-127-0-1" class="displacy-label" startOffset="50%" fill="currentColor" text-anchor="middle">nsubj</textPath>\n </text>\n <path class="displacy-arrowhead" d="M245,91.5 L237,79.5 253,79.5" fill="currentColor"/>\n</g>\n\n<g class="displacy-arrow">\n <path class="displacy-arc" id="arrow-127-0-2" stroke-width="2px" d="M420,89.5 C420,2.0 575.0,2.0 575.0,89.5" fill="none" stroke="currentColor"/>\n <text dy="1.25em" style="font-size: 0.8em; letter-spacing: 1px">\n <textPath xlink:href="#arrow-127-0-2" class="displacy-label" startOffset="50%" fill="currentColor" text-anchor="middle">attr</textPath>\n </text>\n <path class="displacy-arrowhead" d="M575.0,91.5 L583.0,79.5 567.0,79.5" fill="currentColor"/>\n</g>\n</svg>'
或apollo-server
添加自定义标量有两个步骤:
将标量定义添加到类型定义中:
graphql-tools
将实际的GraphQLScalar添加到您的解析器映射中:
scalar DateTime
请注意,解析器映射中的键(此处使用的是const { GraphQLDateTime } = require('graphql-iso-date')
const resolvers = {
/* your other resolvers */
DateTime: GraphQLDateTime,
}
)必须与您在步骤1中用作标量名称的名称匹配。这也将是您在类型定义中使用的名称。名称本身是任意的,但需要匹配。
有关更多详细信息,请参见the docs。