Estoy tratando de entender por qué este ejemplo es una buena idea. Estoy aprendiendo React y encontré esta función que cambia la propiedad complete de todo . Mi pregunta es ¿por qué esto funcionaría? Porque tenemos el const todo que es el que se cambia en realidad, no el newTodoList que es el que regresamos. Supongo que el todo respectivo de newTodoList se cambia de alguna manera, pero no entiendo cómo funciona esto porque, nuevamente, cambiamos el const todo recién creado.
function toggleTodo(id){ const newTodoList = [...todos] const todo = newTodoList.find(todo => todo.id === id) todo.complete = !todo.complete setTodos(newTodoList) }De acuerdo con MDN Web Docs sobre const , la declaración const crea una referencia de solo lectura a un valor. No significa que el valor que contiene sea inmutable, solo que el identificador de la variable no se puede reasignar. Por ejemplo, en el caso de que el contenido sea un objeto, esto significa que el contenido del objeto (por ejemplo, sus propiedades) puede modificarse.
Dado que const todo es un objeto, puede cambiar sus propiedades (es decir todo.complete )