问题描述: 在Angular应用程序中,使用AWSAppSyncClient和ApolloClient时发现它们不兼容,导致应用程序无法正常工作。
解决方法: 由于AWSAppSyncClient和ApolloClient之间存在不兼容性,建议使用ApolloClient替换AWSAppSyncClient来解决此问题。下面是一种可能的解决方法:
npm install apollo-angular apollo-client apollo-cache-inmemory apollo-link-http graphql-tag --save
import { NgModule } from '@angular/core';
import { HttpClientModule } from '@angular/common/http';
import { ApolloModule, Apollo } from 'apollo-angular';
import { HttpLinkModule, HttpLink } from 'apollo-angular-link-http';
import { InMemoryCache } from 'apollo-cache-inmemory';
@NgModule({
imports: [
HttpClientModule,
ApolloModule,
HttpLinkModule
]
})
export class AppModule {
constructor(apollo: Apollo, httpLink: HttpLink) {
const uri = 'YOUR_APPSYNC_ENDPOINT'; // 替换为您的AppSync端点
const http = httpLink.create({ uri });
apollo.create({
link: http,
cache: new InMemoryCache()
});
}
}
import { Component } from '@angular/core';
import { Apollo } from 'apollo-angular';
import gql from 'graphql-tag';
@Component({
selector: 'app-my-component',
template: `{{ data | json }}`
})
export class MyComponent {
data: any;
constructor(private apollo: Apollo) {
this.apollo.query({
query: gql`YOUR_GRAPHQL_QUERY`
}).subscribe(response => {
this.data = response.data;
});
}
}
请根据您的具体要求进行相应的更改,替换YOUR_APPSYNC_ENDPOINT
和YOUR_GRAPHQL_QUERY
为您的AppSync端点和GraphQL查询。
这样,您就可以使用ApolloClient来替代AWSAppSyncClient,并解决兼容性问题。