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

117
Vistas
Cómo insertar una nueva columna en una matriz usando setState

Estoy usando una biblioteca externa para crear un tablero de tareas y lo que quiero lograr es agregar una nueva columna al hacer clic y agregar el botón de columna. Tengo problemas para agregar la columna, tengo la columna recién creada pero no se agrega a la matriz. ¿Qué estoy haciendo mal y cómo puedo insertar la columna recién creada? Aquí está mi código:

 onAddColumn = () => { const newColumn: TaskBoardColumnModel = { id: this.state.columnsData.length + 1, title: 'New Column', status: 'new', edit: true, }; console.log(this.state.columnsData); this.setState({ columsData: newColumn, }); console.log(this.state.columsData); }; }
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Su principal problema es la forma en que actualiza su estado. Esto es lo que tienes:

 this.setState({ columsData: newColumn, });

Este fragmento de código establecerá el estado en columsData: newColumn , lo cual es incorrecto por varias razones:

  • columnsData debe ser columnData
  • Su pieza de código eliminará todas las demás columnas y la reemplazará con una sola. Lo que fallará el código porque columnData se convertirá en un objeto y no en una matriz

Esto es lo que debería ser:

 this.setState({ columnsData: [...this.state.columnsData, newColumn], });

Esto mantendrá su estado actual y agregará la nueva columna a su lista existente.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Tiene un error tipográfico en columsData . Además, columnsData debe ser una matriz, por lo que probablemente necesite establecer el nuevo estado en el anterior más la nueva columna.

por ejemplo, algo como:

 this.setState({ columnsData: [...this.state.columnsData, newColumn], });
about 4 years ago · Juan Pablo Isaza Denunciar

0

 this.setState({ if(this.state.columnsData && this.state.columnsData.length>0) { columnsData: [...this.state.columnsData, newColumn], } });

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