Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

853
Vistas
Advertencia de VUEjs 3: se excedieron las actualizaciones recursivas máximas

actualmente me enfrento al problema de que Vue emite una advertencia: "Se excedieron las actualizaciones recursivas máximas. Esto significa que tiene un efecto reactivo que está mutando sus propias dependencias y, por lo tanto, se activa recursivamente. Las posibles fuentes incluyen plantilla de componente, función de representación, enlace actualizado o observador función fuente".

No puedo averiguar dónde debe estar el error. Itero sobre 2 bucles y luego quiero dar un valor de contador al componente interno, que luego se transmite y luego se interpreta por módulo a las clases CSS en el 3er nivel. Desafortunadamente, tengo que hacerlo de esta manera, porque los componentes creados son partes de una cuadrícula CSS creada dinámicamente. Me gustaría proporcionar prácticamente todas las filas, por lo que todas las celdas a la misma altura con una clase uniforme "par/impar".

Aquí está el componente vue que crea este incremento:

 <template> <template v-for="(project, p) in projects" :key="project.id"> <template v-for="(component, c) in project.components" :key="component.id"> <grid-swim-lane :project="project" :component="component" :grid-row-even-odd-count="evenOddCount++" /> </template> </template> </template> <script> import GridSwimLane from "./GridSwimLane"; import {mapGetters} from "vuex"; export default { components: { GridSwimLane }, data() { return { evenOddCount: -1 } }, computed: { ...mapGetters('projects', { projects: 'getAllProjects' }) }, } </script> <style scoped></style>

Este valor de incremento se genera y se pasa con éxito al último componente a pesar de la advertencia. Pero, ¿cómo puedo hacer que funcione sin la advertencia? Ya he probado algunas cosas. Pero no puedo llegar más lejos.

No puedo hacer esto con los selectores de CSS porque quiero trabajar con clases fijas.

Gracias de antemano por tus consejos.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Descubrí que el valor de this.$.uid del componente de cada grid-swim-lane no es secuencial, sino en secuencia par e impar :-)

Así que uso este valor para determinar la clase css 'par' e 'impar':

 <template> <!-- ------------------ BEGIN LEFT SIDE BAR ------------------ --> <grid-swim-lane-info :grid-row-even-odd-count="gridRowEvenOddCount" /> <!-- ------------------ BEGIN RELEASES ------------------- --> <grid-swim-lane-releases :grid-row-even-odd-count="gridRowEvenOddCount" /> </template> <script> import GridSwimLaneInfo from "./GridSwimLaneInfo"; import GridSwimLaneReleases from "./GridSwimLaneReleases"; export default { components: { GridSwimLaneInfo, GridSwimLaneReleases }, props: { component: { type: Object, default: { id: 0, name: 'no-component'} } }, data() { return { gridRowEvenOddCount: 0 } } mounted() { this.gridRowEvenOddCount = this.$.uid; } } </script> <style scoped></style>
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda