Используйте axios и axios-mock-адаптер
Я пытаюсь использовать axios и axios-mock-adapter в одном месте, чтобы собрать больше макетов, а затем экспортировать экземпляр axios, чтобы использовать его там, где я хочу:
mocks.js
import axios from 'axios';
import MockAdapter from 'axios-mock-adapter';
let instance = axios.create({
baseURL: 'https://some-domain.com/api/',
timeout: 1000,
headers: {'X-Custom-Header': 'foobar'}
});
let mock = new MockAdapter(instance);
mock.onGet('/users').reply(200, {
users: [
{ id: 1, name: 'John Smith' }
]
});
export {instance}
main.js
import instance from './mock'
instance.get('/users')
.then(function(response) {
console.log(response.data);
});
Но я получаю эту ошибку:
Uncaught TypeError: Cannot read property 'get' of undefined
Кто-нибудь может мне помочь? что я скучаю?
1 ответ
Решение
Использование export default instance
вместо export {instance}
main.js
import {instance} from './mock'
Избегайте экспорта по умолчанию - он позволяет импортировать экспортированный модуль с любым именем.
Лучше всего использовать именованные экспорты (обернутые в {}) для обеспечения согласованного именования во всех импорте.