用VueX Store中的计算属性进行Ajax调用的正确方法是什么

时间:2019-04-09 03:41:57

标签: javascript vue.js vuejs2 axios vuex

我如何使用Aue调用进行调用,而其中的调用参数之一是VueX中的计算状态。例如,如果我制作this。$ axios.get('someUrl /'+ accID),而accID是来自VueX的计算属性(通过MapState)。有时ID返回“未定义”,我怀疑这是由于axios在从商店填充ID数据之前发出了get请求

我尝试在Vue组件的'accID'上使用watch()等待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)

期待

this。$ axios({ 网址:“ food / 12345”, 方法:“获取” })

相反

this。$ axios({ 网址:“食品/未定义”, 方法:“获取” })

1 个答案:

答案 0 :(得分:1)

${user.accID}中的${this.user.accID}更改为url

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