Добавьте значок мусорной корзины и реализуйте функцию удаления

В предыдущих статьях мы уже создали приложение, позволяющее пользователю добавлять задачи, а также убирать клавиатуру, когда он щелкает мышью вдали от клавиатуры.

Полное содержание:

Часть 1 — Создание базового макета и компонента заголовка

Часть 2 — Создание компонента элемента

Часть 3 — Создание компонента AddTask для вставки новой задачи

Часть 4 — Предупреждать, если есть ошибка

Часть 5 — Закрыть клавиатуру, когда вы щелкаете мышью вдали от клавиатуры

Часть 6 — Expo React Native Часть 6 — удалить элемент

Часть 7 — Использование flexBox для устранения проблемы с выключенным экраном.

Связанный курс:





Чтобы использовать значок в React Native, мы можем выполнить поиск на этом веб-сайте. Затем мы нажимаем на значок, который мы хотим.

В данный момент мы выбираем значок «удалить», предоставленный MaterialIcons. После того, как мы перейдем на страницу сведений, мы увидим, как импортировать и применить значок.

Добавьте значок удаления

import { MaterialIcons } from '@expo/vector-icons';

Теперь мы импортируем значок материала в верхней части проекта.

return (
<TouchableOpacity style={styles.item}>
<Text >{item.task}</Text>
<MaterialIcons name="delete" size={24} color="black"
/>
</TouchableOpacity>
)

Мы применяем стиль элемента к TouchableOpacity, а не к текстовому компоненту. Затем мы меняем flexDirection на row, а также добавляем justifyContent: «space-between», чтобы переместить имя задачи и значок удаления в обе стороны.

item: {
padding: 15,
borderColor: 'black',
borderRadius: 5,
borderWidth: 1,
marginTop: 15,
borderStyle: "dashed",
flexDirection: "row",
justifyContent: 'space-between',
}

пространство между

пространство вокруг

Добавьте функцию удаления задачи.

Чтобы проверить, можем ли мы выбрать конкретный элемент, мы присоединяем функцию оповещения, чтобы предупредить идентификатор элемента, когда пользователь нажимает на эту задачу.

<TouchableOpacity style={styles.item}>
<Text >{item.task}</Text>
<MaterialIcons name="delete" size={24} color="black"
onPress={() => alert(item.id)}
/>
</TouchableOpacity>

Он должен предупредить об этом идентификаторе задачи.

Поскольку состояние «задачи» находится внутри App.js, нам нужно вернуться к App.js, чтобы создать функцию deleteTask.

Он принимает конкретный идентификатор, чтобы определить, какой объект удалить. Он опирается на список предыдущих задач. Мы собираемся вынуть указанный и вернуть новый массив.

const deleteTask = id => {
setTasks(prevTasks => {
return prevTasks.filter(task => task.id != id)
})
}

После этого мы передадим эту функцию в качестве реквизита компоненту Task, чтобы
мы могли вызывать ее, когда нажимаем значок удаления.

<Task item={item}
deleteTask={deleteTask}
/>

Поскольку мы уже передаем функцию «deleteTask» компоненту задачи, мы деструктурируем внутри компонента задачи и связываемся с функцией удаления задачи при нажатии. Он передаст идентификатор элемента и вернет новый список задач. После того, как мы сохраним его, он должен удалить конкретный элемент.

<TouchableOpacity style={styles.item}>
<Text>{item.task}</Text>
<MaterialIcons name="delete" size={24} color="black"
onPress={() => deleteTask(item.id)}
/>
</TouchableOpacity>

Бесплатные уроки на ютубе



Подписывайтесь на нас:

https://www.linkedin.com/company/ckmobi/

https://twitter.com/ckmobilejavasc1