La gestion des tâches dans une application peut devenir ingérable si l’on ne peut pas supprimer les tâches obsolètes.
Sans cette capacité, les utilisateurs se retrouvent avec des listes encombrées et inefficaces, réduisant l’efficacité de l’application.
Cet article vous montre comment implémenter une fonctionnalité de suppression de tâche dans React Native, améliorant ainsi la gestion des tâches.
Développez votre première application mobile en un rien de temps !
Supprimer tâche dans React Native
Dans cette section, nous allons ajouter la fonctionnalité permettant de retirer une tâche de la liste. Cette action est essentielle pour permettre à l’utilisateur de gérer ses tâches efficacement en supprimant celles qui ne sont plus nécessaires. Voici un visuel concrétisant cette idée :
Implémentation gestion de tâches
Nous verrons comment implémenter cette fonctionnalité de manière simple et intuitive, offrant ainsi une expérience utilisateur fluide et interactive.
Voyons maintenant la modification dans les fichiers pour implémenter cette fonctionnalité.
Index.js :
import React, { useState } from "react";
import { Text, View, StyleSheet, TextInput, Button } from "react-native";
import ToDoList from "@/components/toDoList";
export default function Index() {
const [todos, setTodos] = useState([
{ text: "Apprendre le React Native", key: "1" },
{ text: "Construire ma première application React Native", key: "2" },
]);
const [newToDoText, setNewToDoText] = useState("");
const [nextKey, setNextKey] = useState(3);
const [editingText, setEditingText] = useState("");
const [editingToDo, setEditingToDo] = useState(null);
// Ajouter une tâche
const handleAddTodo = () => {
setTodos((prevTodos) => [
...prevTodos,
{ text: newToDoText, key: String(nextKey) },
]);
setNewToDoText("");
setNextKey(nextKey + 1);
};
// Supprimer une tâche
const handleDeleteTodo = (key) => {
setTodos((prevTodos) => prevTodos.filter((todo) => todo.key !== key));
};
// Commencer l'édition d'une tâche
const handleEditTodo = (key) => {
const todoToEdit = todos.find((todo) => todo.key === key);
if (todoToEdit) {
setEditingText(todoToEdit.text);
setEditingToDo(todoToEdit);
}
};
// Enregistrer les modifications
const handleSaveEdit = () => {
if (editingToDo) {
setTodos((prevTodos) =>
prevTodos.map((todo) =>
todo.key === editingToDo.key
? { ...todo, text: editingText }
: todo
)
);
setEditingToDo(null);
setEditingText("");
}
};
// Annuler l'édition
const handleCancelEdit = () => {
setEditingToDo(null);
setEditingText("");
};
// Affichage
return (
Listes des tâches:
{editingToDo ? (
) : (
)}
);
}
const styles = StyleSheet.create({
main: {
flex: 1,
justifyContent: "center",
alignItems: "center",
},
inputMargin: {
marginBottom: 4,
},
});
Explication de code :
Comme modification dans le code, nous avons ajouter cette handleDeleteTodo qui nous permet de filtrer et supprimer une tache ciblée.
- Cette fonction met à jour l’état todos en filtrant la liste des tâches existantes.
- Elle conserve toutes les tâches sauf celle qui a la clé ( key ) correspondante à celle à supprimer.
- En utilisant filter (), la fonction crée une nouvelle liste de tâches qui exclut la tâche à supprimer, et cette liste est ensuite définie comme nouvel état ( setTodos ).
La fonction handleDeleteTodo est passée en prop au composant ToDoList.
Voici un visuel montrant comment cette fonction pourra filtrer et supprimer la tache ciblée.
Dans le fichier toDoList.js
import React from "react";
import { View, StyleSheet } from "react-native";
import ToDoItem from "@/components/toDoItem";
const ToDoList = ({ todos, handleEditTodo, handleDeleteTodo }) => {
return (
{todos.map((todo) => (
))}
);
};
const styles = StyleSheet.create({
list: {
marginTop: 20,
},
});
export default ToDoList;
Explication de code :
Dans ce fichier, nous avons simplement passé la fonction handleDeleteTodo en tant que props afin qu’elle soit transmise au composant ToDoItem , où elle sera appliquée à l’élément correspondant de la tâche.
Dans le ficihier toDoItem .js
import React from "react";
import { View, Text, StyleSheet, TouchableOpacity } from "react-native";
const ToDoItem = ({ item, handleEditTodo, handleDeleteTodo }) => {
return (
{item.text}
handleEditTodo(item.key)}
>
Modifier
handleDeleteTodo(item.key)}
>
Supprimer
);
};
const styles = StyleSheet.create({
item: {
padding: 10,
marginVertical: 8,
marginHorizontal: 16,
borderBottomWidth: 1,
borderBottomColor: "#ccc",
flexDirection: "row",
justifyContent: "space-between",
alignItems: "center",
},
text: {
fontSize: 16,
},
buttons: {
flexDirection: "row",
gap: 10,
},
editButton: {
backgroundColor: "#007BFF",
padding: 5,
borderRadius: 5,
},
editButtonText: {
color: "#FFF",
fontWeight: "bold",
},
deleteButton: {
backgroundColor: "#FF4D4D",
padding: 5,
borderRadius: 5,
},
deleteButtonText: {
color: "#FFF",
fontWeight: "bold",
},
});
export default ToDoItem;
Explication du code :
Dans ce composant, nous avons simplement ajouté un bouton » Supprimer » et appelé la fonction handleDeleteTodo passée via les props , afin de permettre la suppression de la tâche lorsque l’utilisateur clique sur le bouton. Des propriétés CSS ont également été ajoutées pour améliorer la mise en forme du composant.
Résultat suppression tâche React
Après avoir implémenté le code, nous allons maintenant vérifier si l’application répond bien à nos besoins en permettant de supprimer une tâche. Pour cela, commençons par lancer l’application avec la commande habituelle : npm run android.
Parfait ! Le résultat correspond parfaitement à nos attentes. L’application fonctionne comme prévu en permettant de supprimer une tâche.
Manipulons maintenant l’application en testant de supprimer une tache en cliquant sur le bouton « Supprimer ».
Et voilà ! La tâche ciblée a été supprimée avec succès. Nous avons donc achevé cette section avec succès.
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Comment supprimer une tâche dans React Native ?
Quel est le code pour supprimer une tâche ?
Comment intégrer la suppression dans ToDoList ?
Quelles sont les étapes pour tester la suppression ?
Pourquoi utiliser filter pour supprimer une tâche ?
Conclusion
Vous savez maintenant comment supprimer une tâche dans React Native. Quelles autres fonctionnalités envisagez-vous d’ajouter pour améliorer votre application ?