2017-12-04 2 views
0

Ich arbeite gerade an einem Vue-Projekt, ich verwende Vuex für die Statusverwaltung. Aber wenn ich die beiden unten aufgeführten Aktionen in meiner Komponente mit mapactions und mapgetters verbinde, bekomme ich Maximale Call-Stack-Größe überschritten Fehler in meiner Konsole.VueJS/VueX Maximale Call-Stack-Größe überschritten

Ich weiß nicht, was ich falsch mache.

Screenshot of error

import Vue from 'vue' 
import Vuex from 'vuex' 
import service from "../services/statisticsService" 
import moment from 'moment' 

Vue.use(Vuex) 

const state = { 
    customersAndServicesOverTime:[], 
    counters:{} 
} 
const actions = { 
    actGetAllData(context){ 
     context.dispatch('actGetCustomersAndServicesOverTime') 
     context.dispatch('actGetCounters') 
    }, 

    actGetCustomersAndServicesOverTime(context){ 
     service.getCustomerAndServicesOverTime(context.getters.getJWT) 
      .then(response =>{ 
       context.commit('mutCustomersAndServicesOverTime', response.body) 
      }) 
    }, 
    actGetCounters(context){ 
     service.getCounts(context.getters.getJWT) 
      .then(response =>{ 
       context.commit('mutCounts', response.body) 
      }) 
    } 
} 
const mutations = { 
    mutCustomersAndServicesOverTime(state,payload){ 
     state.customersAndServicesOverTime ={ 
      labels:payload.map(x => moment(x.created).format("DD-MM-YYYY")), 
      datasets:[{ 
       data:payload.map(x => x.customersCount), 
       backgroundColor:"rgba(52, 73, 94,0.5)", 
       label:"customers",lineTension:0 
      },{ 
       data:payload.map(x => x.servicesCount), 
       backgroundColor:"rgba(230, 126, 34,0.5)", 
       label:"services",lineTension:0 
      }]} 
    }, 
    mutCounts(state,payload){ 
     state.counters = payload 
    }, 
} 
const getters = { 
    getCustomersAndServicesOverTime:state=>state.customersAndServicesOverTime, 
    getCounts:state=>state.counters, 
} 

export default { 
    state, 
    getters, 
    actions, 
    mutations 
} 

In meinem Dienst erklärte ich zwei Funktionen, die mit meinem API verbinden.

import Vue from 'vue' 
import VueResource from 'vue-resource' 
import CONFIG from "../config" 

export default { 
    getCounts(jwt) { 
     return Vue.http.get(CONFIG.API + "statistics/counts", { 
      headers: { 
       'Content-Type': 'application/json' 
       ,'Authorization': 'Bearer ' + jwt 
      } 
     }) 
    }, 
    getCustomerAndServicesOverTime(jwt) { 
     return Vue.http.get(CONFIG.API + "statistics/customersandservicesovertime", { 
      headers: { 
       'Content-Type': 'application/json' 
       ,'Authorization': 'Bearer ' + jwt 
      } 
     }) 
    } 
} 
+0

ist es wahrscheinlicher, Sie etwas aus sich selbst heraus anrufen. Also, Endlosschleife wird diese Nachricht verursachen. Überprüfen Sie Ihren Code für Endlosschleifen, Referenzen – samayo

+0

Das ist, was ich überall lese. Aber kann nicht finden wo ... Ich habe schon alles in meinem Geschäft umgeschrieben ... – ivancoene

+1

klicken Sie auf die Datei in rot, vielleicht wird es Ihnen die Quellzeile des Fehlers – samayo

Antwort

Verwandte Themen