为了解决这个问题,需要从AWS Amplify中依赖其他的@aws-amplify模块并手动安装子模块。
例:
import Amplify, { API, graphqlOperation } from 'aws-amplify';
import awsconfig from './aws-exports';
import { createTodo } from './graphql/mutations';
import { listTodos } from './graphql/queries';
import { onCreateTodo } from './graphql/subscriptions';
Amplify.configure(awsconfig);
//手动安装子模块
import { AWSIoTProvider } from '@aws-amplify/pubsub/lib/Providers';
Amplify.addPluggable(new AWSIoTProvider());
//使用订阅
Amplify.PubSub.subscribe(onCreateTodo).subscribe({
next: (data) => {
console.log('Subscription', data);
},
error: error => console.error(error)
});
//使用API查询和更新
API.graphql(graphqlOperation(createTodo, { input: { name: 'Test' } }));
API.graphql(graphqlOperation(listTodos));