Select & Update Todo
[Début de la branche step-5]
Rajouter une propriété dans notre TodoListState afin de conserver une todo, ce qui permettra la mise à jour de celle-ci. Cela implique de modifier l'interface, les actions et le reducer.
models/todo.ts
export interface TodoListState {
// [...]
selectTodo: Todo
}Ajouter les actions SELECT & UPDATE qui ont un paramètre de type Todo.
store/actions/todo-list.action.ts
export namespace TodoListModule {
export enum ActionTypes {
// [...]
SELECT_TODO = '[todoList] Select Todo',
UPDATE_TODO = '[todoList] Update Todo'
}
// [...]
export class SelectTodo {
readonly type = ActionTypes.SELECT_TODO;
constructor(payload: Todo){}
}
export class UpdateTodo {
readonly type = ActionTypes.UPDATE_TODO;
constructor(payload: Todo){}
}
// [...]
export type Actions = InitTodos
| SelectTodo
| DeleteTodo;
}SelectTodo va récupérer le contenu du payload, et UpdateTodo va changer la todo qui match avec l'id du payload :
/store/reducers/todo-list.reducer.ts
Une fonction sera rattachée à l'événement au clique d'une todo. Celle-ci redirigera l'utilisateur vers la page /select-todo tout en modifiant le state selectTodo :
all-todos.ts
Reste la fonctionnalité de UpdateTodo qui sera dans le SelectTodoComponent :
modules/todo-list/components/select-todo/select-todo.component.ts
Vous pouvez maintenant sélectionner et mettre à jour une todo.
Last updated
Was this helpful?