#reactjs #rest #http
#реагирует на #остальное #http
Вопрос:
У меня есть HTTP-класс для методов REST:
import { getQueryString } from './utils'; import { API_URL } from './api'; import { defaultHeaders } from './api/consts'; export default class Http { service = {}; constructor(apiUrl) { this.apiUrl = apiUrl; const service = axios.create({ baseURL: this.apiUrl }); ..... this.service = service; }); } get(path, query, headers = {}) { const fullPath = query ? `${path}?${getQueryString(query)}` : path; return this.service .get(fullPath, headers) .then((response) =gt; response) .catch((error) =gt; Promise.reject(error)); } post(path, payload) { return this.service .request({ method: 'POST', url: path, withCredentials: true, data: payload ? JSON.stringify(payload) : {}, }) .then((response) =gt; response) .catch((error) =gt; Promise.reject(error)); } ..... }
API_URL находится в .env
файле:
export const API_URL = `${process.env.REACT_APP_API_URL}`;
Идея состоит в том, чтобы использовать его с различными URL-адресами API. Например:
const API_URL = 'http://127.0.0.1:8081' export const http1 = new Http(API_URL); const API_URL2 = 'http://127.0.0.1:8082' export const http2 = new Http(API_URL2);
И использование:
http1.get('someurl.com')
и т.д.
Но я получаю эту ошибку:
ReferenceError: Cannot access 'API_URL' before initialization
Что я здесь делаю не так?
Комментарии:
1.
import { API_URL } from './api';
Каково содержимое этого файла2. это в файле .env: экспорт const API_URL =
${process.env.REACT_APP_API_URL}
;3. Попробуй переодеться
APP_URL
APP_URL1
. Возможно, конфликт из-за одного и того же объявления константы.