sourcecode

Vue. vuex 상태에 따라 창 닫기 방지

copyscript 2022. 8. 17. 23:52
반응형

Vue. vuex 상태에 따라 창 닫기 방지

따라서 Vuex 상태에 특정 값이 있는 경우 Vue App이 브라우저 창을 닫지 않도록 합니다.문제는 Vuex 스토어가 라이프 사이클 훅에서 사용할 수 없다는 것입니다.

제가 하려는 일은 다음과 같습니다.

mounted: function () {
        window.addEventListener('beforeunload', function (event) {
            console.log('unload');
            if (this.$store.state.curOrder != ''){
                event.preventDefault()    
                event.returnValue = ""
            }
        }, false)
    },

브라우저 창을 닫으려고 하면 콘솔로그는 맞는데 다음 오류가 나타납니다.

Uncaught TypeError: Cannot read property 'state' of undefined

브라우저를 닫기 전에 Vuex에 액세스할 수 있는 해결 방법이 있습니까?

범위 문제일 수 있습니다.이렇게 해보세요.

별도의 메서드를 만듭니다.

methods: {
    onClose(event) {
        console.log('unload');
        if (this.$store.state.curOrder != ''){
            event.preventDefault()    
            event.returnValue = ""
        }
    }
}

청취자는 다음과 같이 변경합니다.

window.addEventListener('beforeunload', this.onClose);

언급URL : https://stackoverflow.com/questions/59457165/vue-prevent-window-close-depending-on-vuex-state

반응형