2016-11-07 2 views
0

Я использовал машинописный текст (tsx) для реакции. При загрузке задачи изображения я использовал aws-sdk для загрузки на сервер s3. Я также установил aws-sdk по npm и типом.как импортировать aws-sdk в файл tsx в реакции

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 консоль: "AWS не определено. Как я могу импортировать AWS? Спасибо за помощь .

+0

реакция-js для интерфейса. Вы добавите ACCESS_KEY_ID и SECRET_KEY во внешний интерфейс. Ты здравомыслящий? :) –

+0

@ DiligentKeyPresser ой я знал, что это риск. Но это мой личный сайт. Он просто используется на местном уровне. –

ответ

2

Вам необходимо на самом деле иметь пакет aws-sdk в комплекте или вообще не использовать импорт.

Если вы отправляете маршрут и пакет Webpack в свою зависимость, вы можете read about that here. Вам нужно будет npm install -S aws-sdk и использовать загрузчик от TypeScript, например, ts-loader или awesome-typescript-loader.

Если вы хотите продолжать использовать тег сценария, то вам придется написать что-то вроде следующего:

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

Где будет удален импорт для самого _AWS (так как вы использовали только это для его типов), а затем вы просто обратитесь к AWS, как и в противном случае.

Смежные вопросы