Programing

정의되지 않은 VUEX의 '커밋' 속성을 읽을 수 없음

c10106 2022. 5. 8. 21:52
반응형

정의되지 않은 VUEX의 '커밋' 속성을 읽을 수 없음

항상 정의되지 않은 속성의 '커밋'을 읽을 수 없음이라고 표시하십시오.여기 저장소에 있는 내 암호야

import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

export const store = new Vuex.Store({
  state:{
     timer: null,
     totaltime: (25 * 60)
  }, 
  mutations:{
    startTimer: (state, context) => {
    //here is the problem part I think
      state.timer = setInterval(() => context.commit('countDown'),
      1000)
    },
    countDown: state => {
      var time = state.totaltime
      if(time >= 1){
        time--
      }else{
        time = 0
      }
    },
    stopTimer: state => {
      clearInterval(state.timer)
      state.timer = null
    },
    resetTimer: state => {
      state.totaltime = (25 * 60)
      clearInterval(state.timer)
    }
  },
  getters:{
      minutes: state => {
        const minutes = Math.floor(state.totaltime / 60);
        return minutes;
      },
      seconds: (state, getters) => {
        const seconds = state.totaltime - (getters.minutes * 60);
        return seconds;
      }
  },
  actions:{


  }
})

디버깅하는 데 문제가 있어.항상 '정의되지 않은 속성 '커밋'을 읽을 수 없음'과 같이 말함

여기 타이머가 있다.호출 부호

methods: {
      formTime(time){
        return (time < 10 ? '0' : '') + time;
      },
      startTimer(){
        this.resetButton = true
        this.$store.commit('startTimer')
      },
      stopTimer(){
        this.$store.commit('stopTimer')
      },
      resetTimer(){
        this.$store.commit('resetTimer')
      },

    },
    computed: {
      minutes(){
        var minutes = this.$store.getters.minutes;
        return this.formTime(minutes)
      },
      seconds(){
        var seconds = this.$store.getters.seconds;
        return this.formTime(seconds);
      },
      timer: {
        get(){
          return this.$store.state.timer
        }
      }
    }

타이머에 있는 내 코드.계산된 vue 스크립트 및 메서드.어디가 문제인지 추적할 수 없다...제발 도와줘 임수진이 여기에 갇혀있어

돌연변이에 대한 액세스 권한이 없음context그들은 원자적인 존재로 여겨진다. 즉 그들은 국가의 한 면을 가지고 직접적으로 작용한다.당신은 당신의 것을 만들어야 한다.startTimer…을 범하는 행위.timer카운트다운을 시작하고

mutations: {
  // add this one for setting the timer
  setTimer (state, timer) {
    state.timer = timer
  }
},
actions: {
  startTimer ({ commit }) {
    commit('stopTimer') // just a guess but you might need this
    commit('setTimer', setInterval(() => {
      commit('countDown')
    }, 1000))
  }
}

이것을 통해 호출할 필요가 있을 것이다.dispatch대신에commit

this.$store.dispatch('startTimer')

참조URL: https://stackoverflow.com/questions/59315728/cannot-read-property-commit-of-undefined-vuex

반응형