Makel Artikel und der Wert der Eigenschaft zu ändern sind sehr häufig, aber ich schreibe immer noch diese Art von CodeVereinfachen Knebel und setState aktualisierten Artikel Eigentum
handleToggle = (id) => {
const updatedTodos = this.state.todos.map(todo => {
if(todo.id === id){
todo.completed = !todo.completed
}
return todo
})
this.setState({
todos: updatedTodos
})
}
nichts falsch mit ihm, aber ich fand dies der Teil ist, wo ich schreiben viel Code. Im Gegensatz zu Push kann ich Spread-Operator verwenden, oder entfernen kann ich einfach eine Liner-Filter-Methode verwenden. Irgendeine Idee, wie kann ich den obigen Code verkürzen?
ist der erste Parameter, {} 'obligatorisch? –
Kann es sein? Object.assign ({}, todo, todo.id === id && {completed:! Todo.completed})) '? –
Der erste Parameter ist für das Zielobjekt (überprüfen Sie hier: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign), und es ist in der Tat ein obligatorischer Parameter. Wenn wir Todo als ersten Parameter übergeben, wird es geändert, was nicht in Bezug auf "Vermeide Mutation" usw. gewünscht ist. –