useDeleteTodo Hook
In this lesson, we create a hook to delete a ToDo item.
We'll cover the following
useDeleteTodo #
Similar to the previous lesson, we create a hook that returns a callback that allows us to delete an item.
// ./hooks/useDeleteTodo.js
import { useCallback } from 'react';
import { useSetDraft } from '../store';
export const useDeleteTodo = () => {
const setDraft = useSetDraft();
return useCallback(
id => {
setDraft(draft => {
const index = draft.todos.findIndex(todo => todo.id === id);
if (index >= 0) draft.todos.splice(index, 1);
});
},
[setDraft],
);
};
Again, we use Immer’s feature here, to show what a mutable update looks like.
We could use an immutable update if we prefer, like the following:
setDraft(draft => draft.filter(todo => todo.id !=== id));
In this case, the code with the immutable update is shorter.
Next #
In the next lesson, we learn about useToggleTodo
hook.
Get hands-on with 1400+ tech skills courses.