2016-11-07 2 views
0

Ich verwendete Typoskript (tsx) für reagieren. In der Upload-Bildaufgabe habe ich aws-sdk zum Hochladen auf den Server s3 verwendet. Ich habe auch aws-sdk von npm und typings installiert.wie aws-sdk zu tsx-Datei in react importieren

UploadFile.tsx

import * as AWS from 'aws-sdk'; 
//constant 
import DefaultValue from '../../Constants/DefaultValue'; 

AWS.config.update({ 
    region: DefaultValue.REGION, 
    credentials: new AWS.Credentials(DefaultValue.ACCESS_KEY_ID, DefaultValue.SECRET_KEY) 
}); 

class UploadFile extends React.Component<any,any> { 
    s3: any; 
    constructor() { 
     super(); 

     this.s3 = new AWS.S3({apiVersion: '2016-11-07'}); 
    } 

} 

Chrome Konsole Fehler: 'AWS ist undefiniert'. Wie kann ich AWS importieren? danke für die Hilfe .

+0

react-js ist für das Frontend. Sie werden ACCESS_KEY_ID und SECRET_KEY in das Frontend setzen. Bist du gesund? :) –

+0

@DiligentKeyPresser oh Ich wusste, es ist ein Risiko. Aber es ist meine private Website. Es verwendet nur in lokalen. –

Antwort

2

Sie müssen tatsächlich das Paket aws-sdk gebündelt haben oder vermeiden, einen Import vollständig zu verwenden.

Wenn Sie die Webpack-Route gehen und in Ihrer Abhängigkeit bündeln, können Sie read about that here. Sie müssen npm install -S aws-sdk verwenden und einen Loader aus TypeScript wie ts-loader oder awesome-typescript-loader verwenden.

Wenn Sie einen Skript-Tag weiter zu verwenden, dann werden Sie so etwas wie die folgenden schreiben:

import * as _AWS from "aws-sdk"; 
declare var AWS: typeof _AWS; 

Wo der Import für _AWS selbst entfernt werden (da Sie nur verwendet werden es für seine Typen), und dann beziehen Sie sich nur auf AWS, wie Sie sonst würden.

Verwandte Themen