미들웨어에서 Vuex로 상태가 업데이트되지 않습니까?
내 상태에 저장될 Firestore 데이터를 가져오려고 하는데 상태에 있는 Vue dev 도구에 표시되지 않습니다.
저장 작업을 통해 얻고 있는 데이터를 콘솔.log()하면 올바른 데이터를 얻고 있음을 알 수 있지만 상태가 업데이트되지 않습니다.
필요한 데이터를 얻기 위해 홈 페이지와 다른 페이지에서 미들웨어를 사용하여 작업을 발송하고 있습니다.
또한 아래 미들웨어 내에서 조건문을 사용하여 파이어스토어 쿼리에 state.user가 필요하기 때문에 다른 상태 변수가 null이 아닐 때만 작업을 디스패치하려고 했습니다.
//this is check-auth middleware
export default function(context) {
// in initAuth we are forwarding it the req
context.store.dispatch('initAuth', context.req)
console.log('WE ARE GRABBING USER INFO')
context.store.dispatch('grabUserInfo', context.req)
console.log('There is already user info there')
// context.store.dispatch('currentUser')
}
화재 저장소 쿼리가 있는 작업을 실행하기 위해 grabUserInfo를 발송합니다.
grabUserInfo(vuexContext, context) {
let userInfo = []
var userRef = db.collection('users')
var query = userRef
.where('user_id', '==', vuexContext.state.user)
.get()
.then(querySnapshot => {
querySnapshot.forEach(doc => {
console.log(doc.data())
userInfo.push(doc.data())
})
})
vuexContext.commit('setUserInfoSub', userInfo)
}
나의
console.log(doc.data()) is showing
가입자: ["noFace2"] 가입: ["noFace3"] 사용자_id: "VbomJvANYDNe3Bek0suySs1L8oy1" 사용자 이름: "noFace1"
내 정보는 돌연변이를 겪고 상태에 전념해야 하지만, 내 상태 값 개발 도구에는 나타나지 않습니다.
setUserInfoSub(state, payload) {
state.userInfoSub = payload
}
어떻게 데이터가 내 상태로 끝나지 않는지 이해할 수 없습니다.여기 나의 상태와 돌연변이가 있습니다.
const createStore = () => {
return new Vuex.Store({
state: {
loadedCards: [],
user: null,
username: null,
userInfoSub: [],
token: null
},
mutations: {
setCards(state, cards) {
state.loadedCards = cards
},
setUser(state, payload) {
state.user = payload
},
setUsername(state, payload) {
state.username = payload
},
setUserInfoSub(state, payload) {
state.userInfoSub = payload
},
setToken(state, token) {
state.token = token
}
변환을 다음으로 변경합니다.
setUserInfoSub(state, payload) {
Vue.set(state, 'userInfoSub', payload);
}
이를 통해 Vue의 반응성 시스템이 상태 변수 재할당을 위해 다시 작동할 수 있습니다.
@Alexander의 설명에 따라 다음 항목도 이동해야 합니다.commit()
안에서.then()
Firebase 쿼리의 비동기성을 고려할 때.
언급URL : https://stackoverflow.com/questions/56365056/middleware-to-vuex-state-not-updating-state
'programing' 카테고리의 다른 글
Angular 2 NgForm에서 터치된 이벤트를 관찰하는 방법은 무엇입니까? (0) | 2023.06.11 |
---|---|
판다의 다른 값을 기준으로 한 값 변경 (0) | 2023.06.11 |
도구 모음에 뒤로 화살표 표시 (0) | 2023.06.06 |
개체 속성별로 Ruby의 개체 배열을 정렬하시겠습니까? (0) | 2023.06.06 |
어떻게 xkcd 스타일 그래프를 만들 수 있습니까? (0) | 2023.06.06 |