Imagine que un componente tiene accesorios y los accesorios tienen matrices y objetos anidados. En el componente secundario, si necesito copiar a props.nestedObject o props.myArrays para indicar. ¿Está bien la copia superficial?
const [obj, setObj] = useState(props.nestedObject)¿O copia profunda?
const [obj, setObj] = useState(_.cloneDeep(props.nestedObject))La razón por la que pregunto esto es que, normalmente, uso cloneDeep o Immutable.js para no preocuparme por las referencias a objetos. Pero no sé si React hace algo detrás de escena para romper la referencia del objeto.
PD: _.cloneDeep es una función lodash.
reaccionar no rompe la referencia del objeto. Aquí hay un ejemplo:
Ejemplo de parque infantil de stackblitz.com
Usé Object.is() para comparar el objeto original y el objeto devuelto por el gancho useState(). Como puede ver, estos objetos son los mismos, por lo que reaccionar no aplica ningún tipo de clonación.
Puede configurar un estado inicial para el gancho useState sin que se actualice
const [obj, setObj] = useState(() => props.nestedObject)eso es lo que estabas buscando