Причина, по которой вы постоянно не получаете id
, заключается в том, что html-элемент, инициирующий событие click, не всегда соответствует вашему мнению.Пожалуйста, посмотрите эту песочницу для примера.Когда вы нажимаете на любой из ListItem
, иногда вы получаете (если щелкнуть слева от того места, где находится буква, основываясь на моих испытаниях):
<div class="MuiButtonBase-root-1883 MuiListItem-root-1871 MuiListItem-default-1874 MuiListItem-gutters-1879 MuiListItem-button-1880" tabindex="0" role="button" id="a">...</div>
, где присутствует id
.Но в других случаях вы получаете:
<span class="MuiTypography-root-1892 MuiTypography-subheading-1899 MuiListItemText-primary-1889">a</span>
, где отсутствует id
.
Решение этой проблемы - передать title
непосредственно в функцию onClick
:
<ListItem button id={title} onClick={() => onClick(title)}>
...
</ListItem>
Соответственно, функцию onClick
следует обновить следующим образом:
onClick = (title) => {
console.log(title);
console.log('called');
}