我正在使用react native应用程序,其中我已经使用AWS Amplify CLI成功生成了GraphQL API并定义了schema.graphql
。我已经在控制台中对此进行了测试,并且可以在AppSync控制台中定义视频信息,并将其显示在控制台的DynamoDB中。当我尝试通过react native应用程序执行操作时,没有任何内容上传。
我还通过应用程序中的withAuthenticator
成功登录。
在我的App.js
中,当按下一个按钮时,我会调用createVideo,它会调用相应的mutation API.grapghql函数将数据写入数据库。
createVideo = async () => {
const newVideoInfo = {
videoIdInt: 12345,
videoName: "sheeran-moon",
videoUploader: "ed",
videoUploadedAt: "tonight",
videoLength: 85,
numberList: [7,8,9],
shareLink: "www.voda.com"
}
try {
await API.graphql(graphqlOperation(CreateVideo, newVideoInfo))
console.log('User successfully created!!')
}
catch (err) {
console.log('create user error: ', err)
}
}
render() {
return (
<View style={styles.container}>
<Button
style={{margin: 40}}
onPress={this.createVideo}
title='Add User'
backgroundColor='#ffa999'
/>
</View>
);
}
在我的/graphql/mutation.js
文件中,这是与其中的调用相关的代码:
export const createVideo = `mutation CreateVideo($input: CreateVideoInput!) {
createVideo(input: $input) {
id
videoIdInt
videoName
videoUploader
videoUploadedAt
videoLength
numberList
shareLink
}
}
`;
我在终端机上尝试过amplify push
,但没有任何变化。我的/src/aws-exports.js
文件到目前为止仅包含以下内容:
const awsmobile = {
"aws_project_region": "eu-west-2",
"aws_cognito_identity_pool_id": xxxxxx
"aws_cognito_region": "eu-west-2",
"aws_user_pools_id": "eu-west-2_dxxxx",
"aws_user_pools_web_client_id": "xxxxxx",
"aws_appsync_graphqlEndpoint": "https://xxxxxxxxxxxxxx.appsync-api.eu-west-2.amazonaws.com/graphql",
"aws_appsync_region": "eu-west-2",
"aws_appsync_authenticationType": "AMAZON_COGNITO_USER_POOLS"
};
export default awsmobile;
我的index.js
包含:
import Amplify from 'aws-amplify';
import config from './src/aws-exports';
Amplify.configure(config);
我不知道要使这种突变有效的原因是什么。请帮忙!