#api #vue.js #state #store
#API #vue.js #состояние #Магазин
Вопрос:
Мне нужно выполнить вызов api, чтобы получить рекомендации для пользователя. Это мой URL-адрес api: http://URL/../../patients/USER Идентификационный номер/рекомендации
Мой идентификатор пользователя сохраняется в моем хранилище vuex в файле «patient.module.js:
state: {
id: null,
email: null,
password: null,
location: [],
specialty: [],
attribute: [],
language: [],
gender: [],
editUser: false,
},
getters: {
getUserId(state) {
return state.id;
},
},
Моя структура хранилища выглядит следующим образом:
В моем представлении рекомендаций я пытаюсь отобразить json-ответ от моего вызова api. Здесь я написал метод для выполнения вызова api.
methods: {
getRecommendations() {
this.id = this.$store.getters.getUserId;
return http
.get(`/patients/${id}/recommendations`)
.then((response) => {
this.recommendation = response.data;
console.log(response);
})
.catch((error) => {
console.log(
"Ein Fehler beim User ist aufgetreten: " error.response
);
});
},
},
К сожалению, я получаю эту ошибку: id’ не определен
Как я могу получить идентификатор пациента из хранилища и отправить его с моим запросом?
Заранее благодарю вас!
Комментарии:
1. Почему в ваших файлах есть угловые символы?
2. @Erenn У меня есть расширение Visual Studio под названием Material Icon Theme, и из-за названия оно считает, что это угловые файлы
Ответ №1:
Вы можете использовать mapState
в вычислениях, подобных этому.
<script>
import {mapState} from "vuex";
export default {
computed: {
...mapState({
user: state => state.patient
})
},
data() {},
methods: {
getRecommendations() {
this.id = this.user.id;
return http
.get(`/patients/${id}/recommendations`)
.then((response) => {
this.recommendation = response.data;
console.log(response);
})
.catch((error) => {
console.log(
"Ein Fehler beim User ist aufgetreten: " error.response
);
});
},
}
}
</script>
Комментарии:
1. Я добавил ваш код, но получаю ту же ошибку: ошибка ‘id’ не определена no-undef
2. Ах, я думаю, это работает, чтобы получить идентификатор пользователя. Большое вам спасибо!
3. Хорошо, это работает, чтобы получить идентификатор пользователя, но почему-то я не могу отправить его в свой api. В функции идентификатор не распознается: ошибка «идентификатор» не определен нет-undef
4.
.get("/patients/${id}/recommendations")
эта строка нужнаthis.id
или просто.get("/patients/${this.user.id}/recommendations")
5. Спасибо за ваш ответ! Теперь я получаю эту ошибку: GET URL/…/v1/patients/$% 7Bthis.id}/recommendations net::ERR_FAILED 500