В моей функции рендеринга компонента у меня есть:
render() {
const items = ['EN', 'IT', 'FR', 'GR', 'RU'].map((item) => {
return (<li onClick={this.onItemClick.bind(this, item)} key={item}>{item}</li>);
});
return (
<div>
...
<ul>
{items}
</ul>
...
</div>
);
}
все делает отлично, однако при нажатии элемента <li>
появляется следующая ошибка:
Непринятая ошибка: инвариантное нарушение: объекты недействительны как реакция ребенок (найдено: объект с ключами {dispatchConfig, dispatchMarker, nativeEvent, target, currentTarget, type, eventPhase, bubbles, cancelable, timeStamp, defaultPrevented, isTrusted, view, detail, screenX, screenY, clientX, clientY, ctrlKey, shiftKey, altKey, metaKey, getModifierState, кнопка, кнопки, relatedTarget, pageX, pageY, isDefaultPrevented, isPropagationStopped, _dispatchListeners, _dispatchIDs}). Если вы хотите отобразить коллекцию детей, используйте массив или оберните объект с помощью createFragment (object) из надстройки React. Проверьте метод рендеринга
Welcome
.
Если я перехожу в this.onItemClick.bind(this, item)
в (e) => onItemClick(e, item)
внутри функции карты, все работает так, как ожидалось.
Если кто-то может объяснить, что я делаю неправильно, и объяснить, почему я получаю эту ошибку, было бы здорово
ОБНОВЛЕНИЕ 1:
Функция onItemClick выглядит следующим образом, и удаление this.setState приводит к исчезновению ошибки.
onItemClick(e, item) {
this.setState({
lang: item,
});
}
Но я не могу удалить эту строку, поскольку мне нужно обновить состояние этого компонента