반응형
Vuex-변이로 여러 변수를 전달합니다.
나는 사용자 vuejs과 laravel의 여권을 사용해 인가하려고 노력하고 있다.
나는 vuex 변이로 액션을 통해 여러 변수를 보내는 방법에 대해 알 수 없다.
-가게-
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)
}
})
-로그인 방법
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()
})
})
}
나는 매우 도움이 어떤 종류에 대해 감사해야 할 것이다!
이러한 두개의 인수 기대한다:state
그리고payload
어디 그 가게의 현재 상태 Vuex이 알아서 혼자 그 첫번째 인수로 전달됩니다, 둘째 인수 당신이 통과하는데 필요한 매개 변수가 들어 있다.
가장 쉬운 방법은 매개 변수에 합격할 때까지 깔려 있다.
mutations: {
authenticate(state, { token, expiration }) {
localStorage.setItem('token', token);
localStorage.setItem('expiration', expiration);
}
}
그리고 나중에 할 수 있는 것은 단순히 당신의 행동.
store.commit('authenticate', {
token,
expiration,
});
간단히 말해서 키 배열로 당신의 페이 로드를 구축할 필요가 있다.
payload = {'key1': 'value1', 'key2': 'value2'}
그리고 직접 액션에 유상 탑재량을 보내 주세요.
this.$store.dispatch('yourAction', payload)
당신의 행동에 변화가 없다.
yourAction: ({commit}, payload) => {
commit('YOUR_MUTATION', payload )
},
당신의 돌연변이에서 키로 값이라고 부른다.
'YOUR_MUTATION' (state, payload ){
state.state1 = payload.key1
state.state2 = payload.key2
},
나는 이것이 간결한 빛으로 단지 두 매개 변수를 받아들이면 행동을 읽어 여러분이 행동에 여러 변수를 주려고 한다 생각한다고 생각한다.context
그리고payload
어느 것이 당신의 데이터에서 그렇게 예를 들자 전수하기를 원한다.
관리 설정
대신
actions: {
authenticate: ({ commit }, token, expiration) => commit('authenticate', token, expiration)
}
하다
actions: {
authenticate: ({ commit }, {token, expiration}) => commit('authenticate', token, expiration)
}
(파견)관리를 호출하면
대신
this.$store.dispatch({
type: 'authenticate',
token: response.body.access_token,
expiration: response.body.expires_in + Date.now()
})
하다
this.$store.dispatch('authenticate',{
token: response.body.access_token,
expiration: response.body.expires_in + Date.now()
})
이게 도와 줄 희망
참조URL:https://stackoverflow.com/questions/46097687/vuex-passing-multiple-parameters-to-mutation
반응형
'IT이야기' 카테고리의 다른 글
React/Redex 아키텍처에서 API 호출을 수행할 위치 (0) | 2022.03.08 |
---|---|
"vue-discript-theplate"를 typecript base로 변환하는 데 문제가 있으십니까? (0) | 2022.03.07 |
기능 장식가들을 어떻게 만들고 그들을 쇠사슬로 묶는가? (0) | 2022.03.07 |
Vuex에서 정의되지 않은 속성 'displatch'를 읽을 수 없음 (0) | 2022.03.07 |
계산 목록 차이 (0) | 2022.03.07 |