簡體   English   中英

突變不更新狀態

[英]Mutation not updating state

我已提交更改,但用戶狀態未更新而是返回 null

我收到變異數據 axios 調用返回用戶,但不更新狀態

export default new Vuex.Store({
    state: {
        user: null
    },
    getters: {
        getUser: state => {
            return state.user;
        }
    },
    mutations: {
        setUser(state, user) {
            let url = domain + "user";
            axios
                .get(url, {
                    params: {
                        uuid: user.uid
                    }
                })
                .then(res => {
                    Vue.set(state, user, res.data)
                      // tried    state.user = res.data

                })
                .catch(err => {
                    console.log(err);
                });
        }
    },
    actions: {
        setUser(context, user) {
            context.commit('setUser', user);
        }
    }
})

我做錯了什么? 感謝您的幫助

每個異步操作都應該在一個動作中完成,變異應該盡可能簡單。 在這種情況下,您應該將您的邏輯從變異轉移到行動。 像這樣的東西:

export default new Vuex.Store({
    state: {
        user: null
    },
    getters: {
        getUser: state => {
            return state.user;
        }
    },
    mutations: {
        setUser(state, user) {
            Vue.set(state, 'user', user)
        }
    },
    actions: {
        getUser(context, user) {
            let url = domain + "user";
            axios.get(url, {
                params: {
                    uuid: user.uid
                }
            }).then(res => {
                context.commit('setUser', res.data)

            }).catch(err => {
                console.log(err);
            });
        }
    }
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM