要解决“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并处理查询结果。
希望这可以帮助到您!如果还有其他问题,请随时提问。