gpt4 book ai didi

javascript - Graphql react Apollo IntrospectionFragmentMatcher

转载 作者:行者123 更新时间:2023-11-30 06:20:15 25 4
gpt4 key购买 nike

我正在使用 GitHub Graphql API 并使用 react-apollo 编写了以下代码,但是当我在多次请求后分页时,我在控制台上收到以下错误。

You are using the simple (heuristic) fragment matcher, but your queries contain union or interface types. Apollo Client will not be able to accurately map fragments. To make this error go away, use the IntrospectionFragmentMatcher as described in the docs: https://www.apollographql.com/docs/react/recipes/fragment-matching.html

.

WARNING: heuristic fragment matching going on!

.

Missing field name in { "__typename": "Organization" }

Missing field avatarUrl in { "__typename": "Organization" }

Missing field repositories in { "__typename": "Organization" }

然后我写了下面的代码:

gql`
query($username: String!, $nextPage: String) {
search(query: $username, type: USER, first: 100, after: $nextPage) {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
... on User {
name
avatarUrl
repositories {
totalCount
}
}
}
}
}
}
`;


handleSubmit = ({ username }) => {
const { client } = this.props;
this.setState({
loading: true,
searchTerm: username,
});
client
.query({
query: SEARCH_USER,
variables: {
username
}
})
.then(({ data }) => {
this.setState({
loading: false,
searchList: data.search.edges,
pagination: data.search.pageInfo,
});
})
.catch(err => {
console.warn(err);
});
};

最佳答案

因为 Apollo 没有关于您的 GraphQL Schema 的足够信息,您需要以某种方式提供它。 Apollo 有一个 well written documentation关于那个话题。

它描述了使用脚本来检查您的 GraphQL 服务器,以获取有关联合和接口(interface)的缺失信息。

为了让这个过程更简单,我为 GraphQL 代码生成器编写了一个插件,可以自动执行所有操作。有一章叫"Fragment Matcher"我推荐阅读。

首先,手动解决方案或第二个应该可以解决您的问题:)

关于javascript - Graphql react Apollo IntrospectionFragmentMatcher,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53584536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com