LoginSignup
11
4

More than 5 years have passed since last update.

[Vuex]actionからactionの呼び出しはdispatchで書く

Posted at

やりたい事

  1. hogeAPIを実行するActionを実行
  2. hogeAPIのレスポンスにfugaURLが書いてある場合、そのURLを実行するActionを実行
  3. Storeに格納

実装

hogeのAPIレスポンスに、fugaUrlがあるか調べてあればactionをdispatch

vue.js
// 呼び出し
created () {
  getHoge()
},
methods: {
  ..mapActions({
    setHoge: 'setHoge'
  }),
  getHoge() {
    this.setHoge({payload: "hogeAPIのURL"})
  }
}
actions.js
export const setHoge = ({ dispatch, commit }, payload) => {
  Vue.http.get(payload).then((hogeResponse) => {
    let fugaUrl = indexResponse.hoge.fugaUrl
    if (fugaUrl) {
      dispatch('setFuga', fugaUrl) // setFugaを呼び出し
    }
    commit()
  })
}

export const setFuga = ({ commit }, payload) => {
  Vue.http.get(payload).then((fugaResponse) => {
    commit()
  })
}
11
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
4