Ich habe die folgenden Aktionen in meinem Vuex Speicher:Vue js Aufruf Aktion innerhalb Aktion
import { HTTP } from '@/services/http'
import router from '@/router'
export const actions = {
loginUser ({ commit, state }, params) {
HTTP.post('v1/login.json', { email: params.email, password: params.password })
.then(response => {
localStorage.setItem('access_token', response.data.token)
router.push({name: 'Hello'})
}).catch(error => {
commit('SET_LOGIN_ERROR', error.response.data.error)
})
},
myAccount ({ commit }) {
HTTP.get('v1/my_account.json').headers({'Authorization': ('Token token=' + localStorage.getItem('access_token'))})
.then(response => {
commit('SET_USER', response.data)
})
}
}
ich myAccount
Aktion gestartet werden soll, wenn loginUser
erfolgreich ist. Wie kann ich das machen?
ich so etwas wie dies versucht haben:
import { HTTP } from '@/services/http'
import router from '@/router'
export const actions = {
loginUser ({ commit, state }, params) {
HTTP.post('v1/login.json', { email: params.email, password: params.password })
.then(response => {
localStorage.setItem('access_token', response.data.token)
router.push({name: 'Hello'})
}).catch(error => {
commit('SET_LOGIN_ERROR', error.response.data.error)
})
},
myAccount ({ dispatch, commit, state }, payload) {
dispatch('loginUser', payload)
.then((res) => {
console.log('dupa')
// Do this when loginUser finished
})
}
}
aber nicht funktioniert ...
Ich habe Ihre Lösung versucht, aber es funktioniert nicht. Ich habe console.log-Anweisung in '.then'-Block hinzugefügt, aber ich kann diesen Browser nicht sehen. –
Ich denke, es muss ein Problem mit LoginUser Aktion dann vielleicht, weil Sie Ihre Anfrage nicht zurückgeben, aktualisierte ich meine Antwort die Art und Weise, die ich in meinem Projekt mache. –