Как визуализировать бесконечный цикл для vue бесконечный цикл обновления - PullRequest
0 голосов
/ 10 октября 2018

У нас довольно сложная / вложенная система с большим количеством использования Vuex среди вложенных компонентов Vue.Я часто сталкиваюсь с предупреждением: [Vue warn]: You may have an infinite update loop in a component render function. Эти бесконечные циклы не так легко найти, и мне потребовалось много времени для отладки.

Я смотрю на трассировку стека предупреждений Vue и смотрю напоследняя функция, которая была вызвана в моем коде, но это вовсе не делает для меня очевидным, почему или где существует бесконечный цикл.В этих трудных для отладки случаях я предполагаю, что какой-либо родительский компонент хочет выполнить повторную визуализацию в результате изменения моего подкомпонента, поэтому подкомпонент снова запускает ту же функцию vuex, в результате чего родительский компонент выполняет повторную визуализациюи т. д., но я никогда не могу проследить, чтобы подтвердить или увидеть, какая именно функция вызывает повторную визуализацию какой-либо части родительского компонента или самого себя.

Мне интересно, существует ли какой-либо способ визуализации или просмотра бесконечногопетля vue застревает?Я пытался исследовать __ob__ и тому подобное, но есть так много deps и subs, что я не понимаю, где проблема или что действительно нужно искать в deps и subs.У меня все еще есть проблемы с пониманием того, что конкретно представляет собой бесконечный цикл каждый раз, когда он происходит.Есть ли способ указать Vue войти в бесконечный цикл, чтобы я мог видеть трассировку стека или какой-то другой подход к отладке, который я могу использовать?

1 Ответ

0 голосов
/ 11 октября 2018

Можете ли вы предоставить полное сообщение об ошибке в вашем браузере?Исходя из моего опыта, вам может потребоваться скопировать данные, прежде чем вы поместите модель в дочерний компонент.Как и для массива, вы можете иметь:

 var arrayToChildComponent = arrayData.slice();
...