source

js 파일 VUEX에서 상태 액세스 방법

goodcode 2022. 8. 25. 23:49
반응형

js 파일 VUEX에서 상태 액세스 방법

에 액세스 하고 싶다.state소유물currentUservuexuser.js그것을 에 사용하다auth.js이렇게 쓰면 안 돼요store.state.currentUser.uid ===...

다음 오류가 나타납니다.

정의되지 않은 속성 '상태'를 읽을 수 없습니다.

코드에 뭐가 빠졌나요?

트리:

src
 store
   user
    |>user.js
    |>mutations.js
   index.js
 auth.js

user.disples:

 const state = {
   profile: {},
   loggedIn: false,
   currentUser: null,
   userProfile: {}
 }

 export default {
   namespaced: true,
   state
 }

auth.module:

import store from './store'
const fb = require('./firebaseConfig.js')

fb.auth.onAuthStateChanged(user => {
 if (user) {
  fb.postsCollection.orderBy('createdOn', 'desc').onSnapshot(querySnapshot => {

  let createdByCurrentUser
  if (querySnapshot.docs.length) {
    createdByCurrentUser = store.state.currentUser.uid === 
      querySnapshot.docChanges()[0].doc.data().userId ? 'Yes' : 'No'
    console.log(createdByCurrentUser)
   }
 })
 }
})

index.displaces를 표시합니다.

import Vue from 'vue'
import Vuex from 'vuex'
import user from '@/store/user'

Vue.use(Vuex)

const store = new Vuex.Store({
 state: {
   awesome: true
 },
 modules: {
  user
 }
})

export default store

에러

를 사용해야 합니다.getters, 문서를 참조해 주세요.

getters.displays(게터s.displays)

export default {
  currentUser
}

function currentUser({ currentUser }) {
  return currentUser;
}

user.displaces

import getters from './getters'

export default {
  namespaced: true,
  state: {
    profile: {},
    loggedIn: false,
    currentUser: null,
    userProfile: {}
  },
  getters
}

auth.displays(인증)

import store from './store';

const currentUser = store.getters['user/currentUser'];

모듈을 네임슬레이드했기 때문에 getter 기능에 액세스하려면 모듈의 이름을 접두사로 사용해야 합니다.

언급URL : https://stackoverflow.com/questions/52797770/how-to-get-access-of-state-in-js-file-vuex

반응형