tengo función makeid
const makeid = (length) => { var result = ""; var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; var charactersLength = characters.length; for (var i = 0; i < length; i++) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); } return result; };y tengo la función createArray use makeid
const createArray = (x) => { let array = []; const object = { id: makeid(5), }; for (let i = 1; i <= x; i++) { array.push(object); } return array; };& creo func nummberOfColumns
let a = []; [...studentObject, ...createArray((5 -studentObject.length)].map((ele) => { a.push({ id: ele.id, }); }); return a luego uso number Of Columns.map() para devolver la etiqueta </th> . En esta etiqueta uso onChange, pero cada vez que onChange la identificación cambia a otra identificación, no quiero que eso suceda. Intenté usar Usememo pero no funcionó.
Use useEffect con una matriz de dependencias vacía ( [] ). Allí, inicie todo su código y adjunte el resultado a un estado. Puede usar useState para administrar eso. Sucede porque en cada cambio en un árbol, todo el subárbol se vuelve a renderizar. useEffect con una matriz vacía solo se ejecuta después del montaje y la primera actualización (diseño y pintura). Si desea utilizar useMemo , asegúrese de pasar también una matriz vacía para evitar que se vuelva a calcular cuando cambie una dependencia.
useEffect(function(), [])
useMemo(function(), [])