不变冲突:对象作为 React 子级无效
在我的组件的渲染函数中,我有:
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>
未捕获的错误:不变冲突:对象作为 React 子级无效(找到:具有键的对象 {dispatchConfig, dispatchMarker, nativeEvent, target, currentTarget, type, eventPhase, bubbles, cancelable, timeStamp, defaultPrevented, isTrusted, view, detail, screenX, screenY, clientX, clientY, ctrlKey, shiftKey, altKey, metaKey, getModifierState, button, button, relatedTarget, pageX, pageY, isDefaultPrevented, isPropagationStopped, _dispatchListeners, _dispatchIDs})。如果你打算渲染一个子集合,请使用数组,或者使用 React 附加组件中的 createFragment(object) 包装对象。检查 的渲染方法。
Welcome
如果我切换到地图功能内部,一切都按预期工作。this.onItemClick.bind(this, item)
(e) => onItemClick(e, item)
如果有人可以解释我做错了什么,并解释为什么我得到这个错误,那就太好了
更新1:
onItemClick函数如下,删除this.setState会导致错误消失。
onItemClick(e, item) {
this.setState({
lang: item,
});
}
但我无法删除此行,因为我需要更新此组件的状态