#javascript #vue.js #axios
Вопрос:
Я новичок в Vue.js.
Я пытаюсь выполнить вызов axios на своем /src/component/data.js
Файл выглядит следующим образом:
const myData = () => {
return new Promise((resolve, reject) => {
resolve(data());
});
};
const data = () => {
return [
{
name: "A"
},
{
name: "B"
}
];
};
export { myData };
Когда я пытаюсь получить доступ к данным на HelloWorld.vue
:
<script>
import axios from "axios";
import { mydata } from "./data";
export default {
...
async mounted() {
const response = await axios.get(mydata);
console.log(response);
}
};
</script>
Ошибка показывает
TypeError: Cannot read property 'protocol' of undefined
Результат, которого я хочу, это
[
{
name: "A"
},
{
name: "B"
}
]
CodeSandbox:
https://codesandbox.io/s/eloquent-haibt-1bnib?file=/src/components/HelloWorld.vue:1790-2040
Как решить ее, не изменяя data.js
?
Ответ №1:
в вашем коде есть опечатка. вы экспортируете
export { myData };
но, импортируя
import { mydata } from "./data";
но все равно не имеет смысла запрашивать данные без конечной точки у axios
Комментарии:
1. Если я не хочу изменять data.js, как я могу получить данные в HelloWorld.vue
2. я не прошу вас изменять data.js Я говорю вам исправить ваше заявление об импорте в HelloWorld.vue, и это исправит ошибку, но не выполнит то, что вы пытаетесь сделать. вы можете использовать простой экспорт данных вместо использования Axios. или следует использовать какой-то API Axios moke
Ответ №2:
В двух словах, Axios-это библиотека Javascript, используемая для выполнения HTTP-запросов от node.js или XMLHttpRequests из браузера, который также поддерживает API ES6 Promise. Таким образом , у вас должен быть URL-адрес вашего внутреннего API для вызова axios и получения данных оттуда, в вашем коде Pconst myData = () => {
return new Promise((resolve, reject) => {
resolve(data());
});
};
функция данных представляет собой просто массив без какого-либо запроса сервера, в вашем случае просто удалите axios.get . С уважением
Комментарии:
1. Если я не хочу изменять data.js, как я могу получить данные в HelloWorld.vue
2. вместо axios.get(mydata) напишите mydata
3. Но это обещание
4. Я попытался изменить его на
const response = mydata;
, он отображается неопределенным в консоли5. постоянный ответ = ожидание моих данных;