vuex getter вызывает «бесконечное обновление l oop в компонентной функции рендеринга» - PullRequest
0 голосов
/ 23 марта 2020

Я получаю «бесконечное обновление l oop в функции рендеринга компонента», и оно, похоже, запускается геттером vuex, но я серьезно не понимаю, почему. Любой намек очень мне поможет

getPlanningsForPlanner: (state, getters, rootState, rootGetters) => () => {
            let people = getters['getPeopleOrderedBy']();
            return rootState.plannings.map((planning) => {

                if (planning.adhoc_text === null) {
                    planning.epic = rootGetters['moduleJIRA/getEpicByKey'](planning.epic_key);
                    if (typeof (planning.epic) !== 'undefined')
                        planning.project = rootGetters['moduleJIRA/getProjectByKey'](planning.epic.fields.project.key)
                } else {
                    planning.epic = {};
                    planning.project = {};
                }

                // parse dates
                planning.startDate = moment(planning.start_date);
                planning.endDate = moment(planning.end_date);

                // add people
                planning.people = people.find(elm => elm.id === planning.people_id);

                // calculation of hours
                planning.dailyHours = getters['daysToHours'](1, planning.load);
                planning.businessDays = planning.startDate.businessDiff(planning.endDate) + 1;
                planning.plannedHours = getters['daysToHours'](planning.businessDays, planning.load);

                if (!planning.pinned_end) {
                    let fixPlannedEpics = rootState.plannings.filter(_planning => _planning.epic_key === planning.epic_key && _planning.pinned_end);
                    let fixPlannedHours = fixPlannedEpics.reduce((sum, _planning) => sum + _planning.plannedHours, 0);
                    let openlyPlannedEpics = rootState.plannings.filter(_planning => _planning.epic_key === planning.epic_key && !_planning.pinned_end);
                    let hours = Math.max((planning.epic.budget - planning.epic.sumTimeSpent - fixPlannedHours) / openlyPlannedEpics.length, planning.dailyHours);
                    planning.endDate = moment(planning.startDate).businessAdd(Math.round(hours / planning.dailyHours));
                }

                // add indices in timeBeam
                let indices = getters['getIndices'](planning.startDate, planning.endDate);
                planning.startIndex = indices.start;
                planning.endIndex = indices.end;

                return planning
            });
        },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...