Как правильно Ajax-вызов с вычисленными свойствами из VueX Store - PullRequest
1 голос
/ 09 апреля 2019

Как мне сделать вызов ajax с одним из параметров вызова, являющимся вычисленным состоянием в VueX. Например, если я сделаю это. $ Axios.get ('someUrl /' + accID), где accID является вычисляемым свойством из VueX (через MapState). Иногда id возвращает 'undefined', что, как я подозреваю, связано с тем, что axios делает запрос get до того, как данные id будут заполнены из хранилища

Я пытался использовать watch () для accID в компоненте Vue, чтобы дождаться разрешения accID, но безрезультатно

// некоторый частичный код

 computed: {
    ...mapState(['user']),
  },

 async fetchData() {


        const [foodData, option] = await Promise.all([
          this.$axios({
            url: `food/${this.user.accID}`,
            method: 'get',
          }),
          this.$axios({
            url: 'options',
            method: 'get',
          })
        ])

  //foodData returns undefined because user.accID is undefined (sometimes)

Ожидая

это. $ Вардар ({ URL: 'еда / 12345', метод: «получить» })

Вместо

это. $ Вардар ({ URL: 'еда / неопределенная', метод: «получить» })

1 Ответ

1 голос
/ 09 апреля 2019

Изменить ${user.accID} на ${this.user.accID} в url:

url: `food/${this.user.accID}`,
...