У функції візуалізації мого компонента у мене є:
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, бульбашки, відміняється, timeStamp, defaultPrevented, isTrusted, view, деталь, screenX , screenY, clientX, clientY, ctrlKey, shiftKey, altKey, metaKey, getModifierState, кнопка, кнопки, relatedTarget, pageX, pageY, isDefaultPrevented, isPropagationStopped, _dispatchListeners, _dispatchIDs}). Якщо ви мали намір видати колекцію дітей, використовуйте масив замість цього або оберніть об'єкт, використовуючи createFragment (об’єкт) з додатків React. Перевірте метод візуалізації
Welcome
.
Якщо я змінюю , this.onItemClick.bind(this, item)
щоб (e) => onItemClick(e, item)
усередині функції карти все працює , як очікувалося.
Якби хтось міг пояснити, що я роблю неправильно, і пояснити, чому я помиляюся, було б чудово
ОНОВЛЕННЯ 1:
Функція onItemClick полягає в наступному, і видалення this.setState призводить до зникнення помилок.
onItemClick(e, item) {
this.setState({
lang: item,
});
}
Але я не можу видалити цей рядок, оскільки мені потрібно оновити стан цього компонента
this.onItemClick
реалізується?