Quiero mover un valor de matriz de un componente superior a un componente de orden inferior con el clic de un botón.
En el componente de orden inferior, obtengo accesorios como este:
useEffect(() => { if (props.poolInfo) { setPoolInfo(props.poolInfo) diskSlot.push(props.poolInfo.disks_enc_slot) const firstِDiskSlot = Object.freeze(diskSlot); console.log(firstِDiskSlot );//[58:0,58:1] For the first time rendreing checkAllDiskInDriveGroup(props.poolInfo.disks_enc_slot, driveData) } return () => { setPoolInfo(false) setFormData({ count: { options: [], selectedValue: "" }, disk: { options: [], selectedValue: "" }, }) } }, [props.poolInfo])Renderizando por segunda vez y agregando valor al componente superior:
console.log(firstِDiskSlot); //[58:0,58:1,58:3:58:4]Pero quiero (firstِDiskSlot) El primer valor que se representa debe permanecer y no cambiar porque necesito el primer valor:[58:0,58:1]
¿Cómo congelo el valor inicial (firstِDiskSlot) que no cambia por segunda vez?
Si desea ejecutarlo solo una vez (en el primer valor de prop), simplemente elimine la dependencia y deje la matriz vacía - useEffect(() => ..., []) . Si el problema es que el primer valor puede ser la matriz vacía, o indefinida, introduzca una constante estable con useRef y complétela en useEffect, pero solo si no se llenó previamente, y así tendrá solo el primer valor válido en referencia.