programing

Nuxt Vuex 저장소에 알 수 없는 작업 유형

goodsources 2022. 7. 18. 22:18
반응형

Nuxt Vuex 저장소에 알 수 없는 작업 유형

vuex에서 작업을 호출하는 데 문제가 있습니다.loginUser 작업에 액세스하려고 할 때마다 vuex에서 '알 수 없는 작업 유형' 오류가 표시됩니다. 아마도 이 작업을 올바른 방식으로 부르지 않은 것 같습니다.제 코드에 무슨 문제가 있는지 알려주세요.

스토어: user.display

import axios from 'axios'

export const state = () => ({
    users: [],
    loggedIn: false,
})

export const getters = {
    getLoggedIn: (state) => { return state.loggedIn },
}

export const actions = {
    loginUser({ commit }, payload){
        if(state.loggedIn){
            console.log("you're already logged in!")
        }else{
            return new Promise(async(resolve, reject) => {
                const { data } = await axios.post('/api/users/login-admin', {
                    login: payload.login, 
                    password: payload.password
                })
                if(data.success){
                    commit("loggedIn", true)
                    resolve()
                }else{
                    commit("loggedIn", false)
                    reject('an error has ocurred')
                }
                return data.success
            }).catch(err => alert(errCodes(err.code)))
        }
    },
}

export const mutations = { 
    setLoggedIn(state, payload) {
        state.loggedIn = payload
    }
}

login.vue

    computed: {
        ...mapGetters(['getCount'] , {user: 'getLoggedIn'}),
        ...mapActions([
            'loginUser'
        ]),
    },
    methods: {
        onSubmit: function(){
            this.$store.dispatch({
                type: 'loginUser',
                email: this.login,
                pass: this.pass
            }).then(()=>{
                this.$router.push('../admin_2065')
                this.onReset()
            }).catch(e => console.log(e))
        },
        onReset(){
            this.login = ''
            this.pass = ''
            this.$nextTick().then(() => {
                this.ready = true
            })
        }
    },

에러:

어떤 도움이라도 감사히 받겠습니다.

mapActionsmethods 옵션 내에 있어야 하며 네임스페이스를 추가해야 합니다.user/:

  computed: {
        ...mapGetters(['getCount'] , {user: 'getLoggedIn'}),
    },
    methods: {
     ...mapActions([
            'user/loginUser'
        ]),
        onSubmit: function(){
            this['user/loginUser']({
                email: this.login,
                pass: this.pass
            }).then(()=>{
                this.$router.push('../admin_2065')
                this.onReset()
            }).catch(e => console.log(e))
        },
        onReset(){
            this.login = ''
            this.pass = ''
            this.$nextTick().then(() => {
                this.ready = true
            })
        }
    },

언급URL : https://stackoverflow.com/questions/68152178/unknown-action-type-in-nuxt-vuex-store

반응형