почему я не могу получить индекс метода map () внутри функции обработчика кликов в reactjs - PullRequest
0 голосов
/ 01 августа 2020

почему я не могу получить индекс метода map () внутри функции обработчика кликов в reactjs, даже если я передал индекс из метода карты, он всегда возвращает undefined. ниже мой URL-адрес реализации

https://codesandbox.io/s/mystifying-wu-vou3c?file= / src / App. js

Ответы [ 2 ]

3 голосов
/ 01 августа 2020

Стрелочная функция toggle принимает 2 параметра: element и index , вы передаете только index в качестве первого параметра (который должен был быть element, вместо этого), поэтому индекс не определен.

Просто измените свой код следующим образом:

onClick={index => toggle(element, index)}

ОБНОВЛЕНИЕ

Предлагаемый код неверен для копипаст.

Обработчик события принял параметр, который является объектом события, вы назвали этот параметр index, поэтому, когда вы переходите к переключению, он использует событие вместо индекса карты.

В любом случае, для переключения нужно 2 параметра, поэтому вам нужно передать 2.

Я думаю, что правильным решением будет:

onClick={ev => toggle(ev.target, index)}

Это нормально для функции переключения, но ваш код все еще есть ошибка, поэтому взгляните на ответ @adel.

1 голос
/ 01 августа 2020

onClick должен быть таким: onClick={() => toggle(index)}, так что индекс от array.map, и я также отредактировал ваш код и удалил состояние isOpen. здесь полный код: код

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...