通过AWS Amplify反应本机应用程序-> DynamoDB。怎么样?

时间:2019-01-12 00:32:11

标签: reactjs amazon-web-services react-native graphql aws-amplify

我正在使用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);

我不知道要使这种突变有效的原因是什么。请帮忙!

0 个答案:

没有答案