вызов api с использованием идентификатора пользователя

#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