Create Todo version 2

[Début de la branche step-8]

Mettre à jour notre action de createTodo pour inclure une requête serveur de la même façon que InitTodos. Il n'y aura pas une action CREATE_TODO, mais trois :

  • LOAD_CREATE_TODO ;

  • SUCCESS_CREATE_TODO ;

    • ERROR_CREATE_TODO.

todo-list.action.ts

import { Todo } from '../../models/todo';

export namespace TodoListModule {

    export enum ActionTypes {
        // [...]
        LOAD_CREATE_TODO = '[todoList] Load Create Todo',
        SUCCESS_CREATE_TODO = '[todoList] Success Create Todo',
        ERROR_CREATE_TODO = '[todoList] Error Create Todo',
        // CREATE_TODO = '[todoList] Create Todo',
    }
    // [...]
    /*
    export class CreateTodo {
        readonly type = ActionTypes.CREATE_TODO;
        constructor(public payload: Todo) {}
    }
    */

    export class LoadCreateTodo {
        readonly type = ActionTypes.LOAD_CREATE_TODO;
        constructor(public payload: Todo) {}
    }

    export class SuccessCreateTodo {
        readonly type = ActionTypes.SUCCESS_CREATE_TODO;
        constructor(public payload: Todo) {}
    }

    export class ErrorCreateTodo {
        readonly type = ActionTypes.ERROR_CREATE_TODO;
    }
    // [...]
    export type Actions = DeleteTodo
        | LoadCreateTodo
        | SuccessCreateTodo
        | ErrorCreateTodo
        // [...]
        //| CreateTodo;
}

Ajouter les nouvelles actions dans le reducer :

Créer un service de post :

Ajouter l'effect qui écoutera les actions de type LOAD_CREATE_TODO :

Changer l'action lors du clique. Ainsi, on peut retirer la notion d'id car le serveur définira son propre id à la todo :

all-todos.ts

L'action de createTodo est maintenant connectée avec le serveur.

Last updated

Was this helpful?