Форум программистов, компьютерный форум, киберфорум
JavaScript: React
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
3 / 3 / 0
Регистрация: 08.06.2013
Сообщений: 212
1

React Native. Почему при первом клике на элемент он не удаляется?

25.11.2022, 15:53. Показов 372. Ответов 2

Author24 — интернет-сервис помощи студентам
Большое спасибо за помощь!
При клике на GoalItem он должен удаляться

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
export default function Example() {
 
  const [allGoals, setAllGoals] = useState([])
 
  function deleteGoal(id) {
    setAllGoals(allGoals.filter(g => g.id != id))
  }
 
  function addGoalHandler(enteredGoalText) {
    setAllGoals([...allGoals, { text: enteredGoalText, id: Math.random().toString() }])
  }
 
  return (
    <View style={styles.appContainer}>
      <GoalInput onAddGoal={addGoalHandler}/>
      <View style={styles.goalsContainer}>
        <FlatList
          alwaysBounceVertical={true}
          data = {allGoals}
          renderItem ={({ item, index }) => {
            return (<GoalItem item={item} deleteGoal={deleteGoal.bind(this, item.id)}/>)
          }}
          keyExtractor={i => i.id}
        />
      </View>
    </View>
  );
}
 
export default function GoalItem ({ item, deleteGoal }) {
  return (
    <Pressable onPress={() => {
      deleteGoal(item.id);
    }}>
      <View style = {styles.singleGoal}><Text style = {styles.singleGoalText} >{item.text}</Text></View>
    </Pressable>
  )
}
 
export default function GoalInput({onAddGoal}) {
  const [enteredGoalText, setEnteredGoalText] = useState('');
  function goalInputHandler(enteredText) {
    setEnteredGoalText(enteredText);
  }
 
  function addGoalHandler() {
    onAddGoal(enteredGoalText)
    setEnteredGoalText('')
  }
  return (
    <View style={styles.inputContainer}>
      <TextInput
        style={styles.textInput}
        placeholder="Your course goal!"
        onChangeText={goalInputHandler}
        value={enteredGoalText}
      />
      <Button title="Add Goal" onPress={addGoalHandler}/>
    </View>
  )
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.11.2022, 15:53
Ответы с готовыми решениями:

Frontend Flutter/React/React Native software developer (remote)
Всем привет, начинаю раскидывать резюме и искать работу заранее :) Если кому будет интересно,...

Вакансия - Разработчик (Frontend Developer React, React Native)
Требуемый опыт работы: 1–3 года Полная занятость, удаленная работа Обязанности: Участие в...

Ошибка при запуске react native приложения
Пытаюсь запустить react native приложение: react-native run-android и получаю: error Failed to...

Ошибки при запуске react-native run-android
Уже 2 дня пытаюсь понять. При запуске react-native run-android мне выдаёт: Deprecated Gradle...

React Native. Клик по кнопке при открытой клавиатуре
Всем привет! Проблема такая: При открытой клавиатуре, если нажать на кнопку Continue, то...

2
Эксперт JSЭксперт HTML/CSS
3605 / 1421 / 393
Регистрация: 14.03.2022
Сообщений: 3,381
25.11.2022, 16:20 2
хгаля, зачем биндить
Цитата Сообщение от хгаля Посмотреть сообщение
Javascript
1
deleteGoal={deleteGoal.bind(this, item.id)}
Если для удаления достаточно ИД элемента?
1
3 / 3 / 0
Регистрация: 08.06.2013
Сообщений: 212
29.11.2022, 12:11  [ТС] 3
Альтернативный подход. Чтобы передать в функцию это id =)
0
29.11.2022, 12:11
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.11.2022, 12:11
Помогаю со студенческими работами здесь

При клике на элемент #name перезагружается страница. Почему?
Добрый день, такой вопрос: Установил скрипт:...

Разница между React и React native
Я хочу начать освоение React для фрондента, но при этом хотел бы иметь возможность писать мобильные...

Данные не подгружаются при нестабильном соединении в мобильном приложении на react native
почему так и что делать?

Ограничения при разработке на React Native для MacOS без Mac
Здравствуйте. Хотелось бы уточнить последовательность действий и различия при разработке на React...

При первом клике одно действие, при втором клике другое действие
Есть кнопка, при первом нажатии добавляется файл-css на страницу (как это сделать знаю, как пример...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Какой язык программировани­я лучший для разработки нейронных сетей
InfoMaster 20.01.2025
В современном мире технологий искусственные нейронные сети становятся неотъемлемой частью множества инновационных решений, от распознавания речи до автоматического управления транспортными. . .
Как подключить JavaScript файл в другом JavaScript файле
InfoMaster 20.01.2025
В современной веб-разработке организация кодовой базы играет ключевую роль в создании масштабируемых и поддерживаемых приложений. Модульность и правильное структурирование кода стали неотъемлемыми. . .
Как откатить изменения в исходниках, не внесенные в Git
InfoMaster 20.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с необходимостью отменить внесенные изменения в исходном коде. Особенно актуальной становится ситуация, когда изменения еще. . .
В чем разница между px, in, mm, pt, dip, dp, sp
InfoMaster 20.01.2025
В мире цифрового дизайна и разработки интерфейсов правильный выбор единиц измерения играет ключевую роль в создании качественного пользовательского опыта. История развития систем измерений для. . .
Как изменить адрес удалённого репозитория (origin) в Git
InfoMaster 20.01.2025
В терминологии Git термин origin является стандартным именем для основного удаленного репозитория, с которым взаимодействует локальная копия проекта. Когда разработчик клонирует репозиторий с. . .
Как переместить последние коммиты в новую ветку (branch) в Git
InfoMaster 20.01.2025
При работе над проектом часто возникают ситуации, когда необходимо изолировать определенные изменения от основной линии разработки. Это может быть связано с экспериментальными функциями, исправлением. . .
Как вернуть результат из асинхронной функции в JavaScript
InfoMaster 20.01.2025
Асинхронное программирование представляет собой фундаментальную концепцию в JavaScript, которая позволяет выполнять длительные операции без блокировки основного потока выполнения программы. В. . .
Какой локальный веб-сервер выбрать
InfoMaster 19.01.2025
В современной веб-разработке локальные веб-серверы играют ключевую роль, предоставляя разработчикам надежную среду для создания, тестирования и отладки веб-приложений без необходимости использования. . .
Почему планшеты и iPad уже не так популярны, как раньше
InfoMaster 19.01.2025
Эра революционных инноваций История планшетов началась задолго до того, как эти устройства стали привычными спутниками нашей повседневной жизни. В начале 1990-х годов появились первые прототипы,. . .
Как самому прошить BIOS ноутбука
InfoMaster 19.01.2025
BIOS (Basic Input/ Output System) представляет собой важнейший компонент любого компьютера или ноутбука, который обеспечивает базовое взаимодействие между аппаратным и программным обеспечением. . .
Какой Linux выбрать для домашнего компьютера
InfoMaster 19.01.2025
Современные реалии выбора операционной системы В современном мире выбор операционной системы для домашнего компьютера становится все более важным решением, которое может существенно повлиять на. . .
Как объединить два словаря одним выражением в Python
InfoMaster 19.01.2025
В мире программирования на Python работа со словарями является неотъемлемой частью разработки. Словари представляют собой мощный инструмент для хранения и обработки данных в формате "ключ-значение". . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru