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

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

09.05.2019, 09:41. Показов 1531. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru