Форум программистов, компьютерный форум, киберфорум
React/ReactJS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
2 / 2 / 7
Регистрация: 08.05.2013
Сообщений: 139

Индекс "нажатого" элемента

09.05.2019, 09:41. Показов 1545. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Делаю элементы, при клике меняющие стиль. Вот код

index.js
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
class App extends React.Component {
  constructor(props) {
    super(props);
    this.handleClick = this.handleClick.bind(this);
    this.state = {
      boolVar: false
    };
  }
 
  handleClick(e) {
    this.setState({boolVar: !this.state.boolVar});
  }
 
  render() {
    return (
      <Layout>
        <Collapse>
          <Item text='Lorem ipsum' onClick={this.handleClick} boolVar={this.state.boolVar} />
          <Item text='Lorem ipsum' onClick={this.handleClick} boolVar={this.state.boolVar} />
          <Item text='Lorem ipsum' onClick={this.handleClick} boolVar={this.state.boolVar} />
          <Item text='Lorem ipsum' onClick={this.handleClick} boolVar={this.state.boolVar} />
        </Collapse>
      </Layout>
    )
  }
}
item.js
JavaScript
1
2
3
4
5
6
7
8
9
const Item = ({text, onClick, boolVar}) => {
    // const [boolVar, setBoolVar] = useState(false);
    return <LiItem boolVar={boolVar} onClick={onClick}>
        {text}
        <ItemInfo boolVar={boolVar}>
            Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
        </ItemInfo>
    </LiItem>
}

Собственно, в чём моя проблема: я никак не передаю некий id, поэтому событие onClick срабатывает сразу на всех элементах. Как я понимаю, мне надо создать в Item property id и передавать его, и как-то смапить в родительском компоненте.

Но я никак не соображу, как мне это сделать?

P.S. сделать через хуки в компоненте Item - не предлагать
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.05.2019, 09:41
Ответы с готовыми решениями:

Поменять класс у нажатого элемента
Всем привет! Написал такой код &lt;div class=&quot;services&quot;&gt; &lt;div...

Индекс нажатого элемента children
Как получить индекс нажатого элемента children, например в WrapPanel у меня есть несколько кнопок, как получить индекс нажатой кнопки?

Получить индекс нажатого элемента в Menu
Имеется элемент управления Menu следующего вида: -Графика --Элемент 1 --Элемент 2 --... --Элемент i Количество элементов...

3
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
09.05.2019, 09:52
у вас не клик срабатывает на всех, у вас boolVar один для всех
0
2 / 2 / 7
Регистрация: 08.05.2013
Сообщений: 139
09.05.2019, 10:04  [ТС]
Цитата Сообщение от j2FunOnly Посмотреть сообщение
у вас не клик срабатывает на всех, у вас boolVar один для всех
И как мне посоветуете код исправить?
0
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
10.05.2019, 07:08
что исправить? у вас работает как и написано. какой результат вы ожидаете? чего вы хотите достичь и что еще используется кроме реакта? что такое LiItem и ItemInfo? как на них влияет boolVar? В material-io нет ничего подобного

Добавлено через 49 секунд
почему не предлагать использование хуков?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.05.2019, 07:08
Помогаю со студенческими работами здесь

Как определить индекс нажатого элемента pictureBox [, ]
Есть два массива с одинаковой размерности pictureBox picArray , int intArray . Нужно при нажатии на picArray изменить значение intArray ....

Как узнать индекс нажатого элемента массива
Есть такой список: &lt;ul id=&quot;navigation&quot;&gt; &lt;li class=&quot;nav active&quot;&gt;&lt;/li&gt; &lt;li class=&quot;nav&quot;&gt;&lt;/li&gt; &lt;li...

Индекс нажатого submit
Здравствуйте, имеется форма с таблицей, метод post: &lt;?php echo &quot;&lt;form action='action.php' method='post'&gt;&quot;; $result =...

MainMenu - как узнать индекс нажатого меню?
Доброе утро, форумчане! Встретился с интереным для себя вопросом: А как узнать id элемента из MainMenu, который нажал пользователь? В...

Определение нажатого элемента
&lt;div class=&quot;Normative_modal_create&quot; onclick=&quot;newNormative('index.php) &quot;&gt;Создать&lt;/div&gt; Как в функции newNormative() отследить на какой...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru