【发布时间】:2019-07-23 15:16:35
【问题描述】:
我正在同一个项目中的一个工作实现中构建一个新的 createRefetchContainer(),但在运行 yarn relay 时出现此错误:
ERROR:
GraphQLParser: Unknown field `usersByName` on type `Viewer`.
Source: document `AutocompleteUsersContainer_UsersRefetchQuery` file:
`client/components/Autocomplete/Users/AutocompleteUsersContainer.js`.
错误中继功能:
export default createRefetchContainer(
AutocompleteUsers,
graphql`
fragment AutocompleteUsersContainer_viewer on Viewer
@argumentDefinitions(name: { type: "String", defaultValue: "" }) {
usersByName(name: $name)
}
`,
graphql`
query AutocompleteUsersContainer_UsersRefetchQuery(
$name: String!
) {
viewer {
usersByName(name: $name){
id
}
}
}
`
);
工作实施:
export default createRefetchContainer(
AutocompleteLocations,
graphql`
fragment AutocompleteLocationsContainer_viewer on Viewer
@argumentDefinitions(searchValue: { type: "String", defaultValue: "" }) {
locations(searchValue: $searchValue)
}
`,
graphql`
query AutocompleteLocationsContainer_LocationsRefetchQuery(
$searchValue: String!
) {
viewer {
locations(searchValue: $searchValue)
}
}
`
);
下面的usersByName 查询直接在graphql 中返回结果,这就是为什么我不知道为什么relay 说Unknown field 'usersByname':
query getViewer{
viewer {
usersByName(
name: "Test Name"
) {
id
}
}
}
【问题讨论】:
-
您的架构是否已更新,是否需要运行
relay-compiler? -
现在才发现,是的,架构需要更新。已用
yarn schema修复