要解决“Apollo客户端的userQuery
的onError
不再执行”的问题,您可以使用ApolloClient
的watchQuery
方法,并且在调用watchQuery
时传递errorPolicy
参数为ignore
。这将导致onError
不再执行。
以下是一个示例代码:
import { ApolloClient, InMemoryCache, gql } from '@apollo/client';
const client = new ApolloClient({
uri: 'https://example.com/graphql',
cache: new InMemoryCache(),
});
const userQuery = gql`
query User {
user {
id
name
}
}
`;
client.watchQuery({
query: userQuery,
errorPolicy: 'ignore', // 设置errorPolicy为ignore
}).subscribe({
next: (result) => {
// 处理查询结果
},
error: (error) => {
// `onError`不再执行
},
});
在上面的代码中,我们使用watchQuery
方法来订阅userQuery
查询,并将errorPolicy
设置为ignore
。这将导致onError
回调不再执行。
请注意,watchQuery
方法返回一个Observable
,您可以使用subscribe
方法来订阅该Observable
并处理查询结果。
希望这可以帮助到您!如果还有其他问题,请随时提问。