Hola a todos antes de que sea demasiado tarde y horas, no puedo trabajar.
Necesito actualizar cada casilla de verificación, cuando esto es verdadero o falso (la matriz de tareas es una casilla de verificación en el extremo frontal)
Data seeds const datas = [ { id: 10, name: job01, tasks: [ { name: "morning", value: false }, { name: "afternoon", value: true }, { name: "sunset", value: false }, { name: "night", value: true }, ], completed: false }];el siguiente código para actualizar los datos, cuando presione una casilla de verificación es:
const [todos, setTodos] = useState(datas) const toggleTask = taskId => { const updateTodos = todos.forEach(to => { to.tasks.forEach(task => { if (taskId === to.name) console.log('update datas: ', { ...task, value: !task.value}) } }) })console.log('Result: ', updateTodos ) };//only show undefinedGracias por Léame.
forEach no devuelve nada, es posible que desee mapear primero la matriz y luego filtrar los elementos:
// get a list of the tasks that you need to update const needUpdateTodos = todos.flatMap( to => to.tasks.filter(task => taskId === to.name) ); // for each task that you need to update, change the value to the opposite const updatedTodos = needUpdateTodos.map(el => { task.value = !task.value; console.log('update datas: ', task) return task }) // show resulting tasks updated console.log('Result: ', updatedTodos )