Vuex - passer plusieurs paramètres à l'action
Je suis en train d'authentifier un utilisateur à l'aide de vuejs et laravel passeport.
Je ne suis pas en mesure de comprendre comment faire pour envoyer plusieurs paramètres à la vuex mutation par l'intermédiaire d'une action.
- magasin -
export default new Vuex.Store({
state: {
isAuth: !!localStorage.getItem('token')
},
getters: {
isLoggedIn(state) {
return state.isAuth
}
},
mutations: {
authenticate(token, expiration) {
localStorage.setItem('token', token)
localStorage.setItem('expiration', expiration)
}
},
actions: {
authenticate: ({ commit }, token, expiration) => commit('authenticate', token, expiration)
}
})
- méthode de login -
login() {
var data = {
client_id: 2,
client_secret: '**************************',
grant_type: 'password',
username: this.email,
password: this.password
}
//send data
this.$http.post('oauth/token', data)
.then(response => {
//send the parameters to the action
this.$store.dispatch({
type: 'authenticate',
token: response.body.access_token,
expiration: response.body.expires_in + Date.now()
})
})
}
Je serais très reconnaissant pour toute sorte d'aide!
OriginalL'auteur Schwesi | 2017-09-07
Vous devez vous connecter pour publier un commentaire.
Mutations attendre deux arguments:
state
etpayload
, où l'état actuel de la banque est passé par Vuex lui-même comme premier argument et le deuxième argument tient tous les paramètres que vous devez passer.La meilleure façon de passer un certain nombre de paramètres est de détruire:
Puis plus tard, dans vos actions, vous pouvez tout simplement
OriginalL'auteur Nit
En termes simples, vous avez besoin pour construire votre charge dans un tableau de clés de
Alors d'envoyer la charge utile directement à l'action
pas de changement en vous action
dans votre mutation appeler les valeurs avec la clé
},
OriginalL'auteur peterretief