Ich habe versucht, dies für ein paar Stunden jetzt herauszufinden ... Wie stelle ich die vollständige um in Notes innerhalb der Task-Objekt wechseln?Set item, um 2 Ebenen tief in Redux Reducer zu vervollständigen
Komme ich rechts davon?
Reducer:
let taskReducer = function(tasks = [], action) {
case 'COMPLETE_NOTE':
return tasks.map((task) => {
if(action.taskId !== task.id) {
return task;
} else if(action.taskId === task.id) {
const { notes } = task;
notes.map((note) => {
return note.id === action.noteId ?
Object.assign({}, note, {note: {completed: !note.completed}}): note
})
}
})
default:
return tasks;
}
}
Aktionen:
let actions = {
completeNote: (taskId, noteId) => {
return {
type: 'COMPLETE_NOTE',
taskId: taskId,
noteId: noteId,
}
}
}
Auftraggeber:
let initialState = {
tasks: [{
id: 1,
title: 'do this',
completed: false,
notes: [{
id: 0,
title: 'note1',
completed: false
}]
}]
}
Ich möchte es einfach halten. Nachdem es den Reduzierer für COMPLETE_NOTE durchlaufen hat, wird die Aufgabe selbst undefiniert. Was schlägst du meinen Code vor? –
Whoops, ich habe gerade dein Problem bemerkt. Im Rumpf des elseif-Blocks sollten Sie die Aufgabe mit der Eigenschaft der modifizierten Notizen zurückgeben. Überprüfen Sie die Änderung in meiner Antwort. – Brandon
Danke für die Antwort. Keine Sorge, ich hätte klarer sein können. Wie auch immer, es scheint den Spread-Operator nach der ersten Rückkehr nicht zu mögen. –