【发布时间】:2019-05-19 06:25:28
【问题描述】:
对不起,如果这有点涉及,但我真的想关闭 能够在本地和本地使用 Apollo 客户端的最后一英里 服务器状态,随处可见自动 Typescript。也就是说,我有一个这样的查询:
query NavigationBarQuery($userId: Int, $portfolioCompanyId: Int!) {
user(id: $userId) {
id
firstName
lastName
company {
... on CompanyInterface {
companyType
}
}
}
}
这是由我的 NavigationBar 组件导入的,如下所示:
import { NavigationBarQuery, NavigationBarQueryVariables } from '../../../graphql/generated/NavigationBarQuery';
import NAVIGATION_BAR_QUERY from '../../../graphql/NavigationBarQuery.graphql';
const NavigationBar = (vars: NavigationBarQueryVariables) => (
<Query query={NAVIGATION_BAR_QUERY} variables={vars}>
{({ loading, error, data, client }: QueryResult<INavigationBarClientQuery>) => {
// etc.
使用本地模式文件(从 Graphene 转储)执行生成,如下所示:
apollo client:codegen --localSchemaFile ./build/schema.json --includes './src/graphql/**' --target typescript
这很好用,我得到了 TypeScript 类型和所有东西。
但是,我想包含一些本地状态,查询如下:
query NavigationBarQuery($userId: Int, $portfolioCompanyId: Int!) {
user(id: $userId) {
id
firstName
lastName
company {
... on CompanyInterface {
companyType
}
}
}
showNavbarUserInfo @client
}
如果我绕过 TypeScript,这个查询工作就好了,但是当我 尝试为其生成 Typescript 定义,生成 脚本发出此错误:
.../client/src/graphql/NavigationBarQuery.graphql: Cannot query field "showNavbarUserInfo" on type "Query".
{ ToolError: Validation of GraphQL query document failed
at Object.validateQueryDocument (/Users/gavin/.config/yarn/global/node_modules/apollo-language-server/lib/errors/validation.js:32:19)
at Object.generate [as default] (/Users/gavin/.config/yarn/global/node_modules/apollo/lib/generate.js:19:18)
at write (/Users/gavin/.config/yarn/global/node_modules/apollo/lib/commands/client/codegen.js:64:54)
at Task.task (/Users/gavin/.config/yarn/global/node_modules/apollo/lib/commands/client/codegen.js:83:46) name: 'ToolError' }
如果有的话,解决方法是什么?像往常一样,寻找例子。
【问题讨论】:
-
加文,你有没有找到解决办法?
-
cnp 的回答如下
标签: typescript graphql apollo