@historydev
Острая аллергия на анимешников

Как получить элемент внутри цели клика?

Добрый день. Скажите пожалуйста, я туплю видимо дико, что я сделал не так?

TypeError: Cannot read property 'innerText' of null


<ul className='select selectDefault globalSelect' onClick={(e) => document.querySelector('#hide').value = e.target.querySelector('li').innerText}>
                        <li> {view[0].name} </li> <i className='fas fa-chevron-down' />
                        <div className="selectContent">
                            {view.map(el => (<li onClick={(e) => selectItem(e)} key={el.id}>{el.name}</li>))}
                        </div>
                    </ul>


Спасибо.
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега React
Если отвечать на вопрос из заголовка - надо target заменить на currentTarget.

Но можно ответить и на тот, что в основном тексте:

что я сделал не так?

Почему у вас внутри ul находятся i и div? Почему li находится внутри div? Разберитесь, кого чьим контентом можно и нельзя делать.

Стучаться напрямую к элементам не надо: значение #hide должно браться из стейта, обновлять надо стейт; innerText, который вы хотите получить - его также надо брать из стейта.

Метод selectItem - подумайте, как его переписать так, чтобы вместо объекта события (который вам нужен ради свойства target, да?) он принимал данные, на основе которых создан li.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dimovich85
@dimovich85
https://u-academy.net/
Вы когда в реакте работаете Вам в 90% случаев НЕ нужен DOM. Вообще у любого элемента DOM есть метод querySelector, или свойства children, и тд.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы