在我组件的渲染函数中,我有:
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>
元素时,我收到以下错误:
Uncaught Error: Invariant Violation:对象作为React无效 child(发现:对象的键{dispatchConfig, dispatchMarker, nativeEvent,目标,currentarget,类型,eventPhase,气泡, 可取消的,时间戳,defaultblocked, isTrusted,视图,详细信息, screenX, screenY, clientX, clienti, ctrlKey, shiftKey, altKey, metaKey, getModifierState,按钮,按钮,relatedTarget, pageX, pageY, isdefaultblocked, isPropagationStopped, _dispatchListeners, _dispatchIDs})。如果你打算呈现一个子集合,使用数组代替,或者使用createFragment(object) from包装对象 React插件。检查
Welcome
的渲染方法
如果我在映射函数中将this.onItemClick.bind(this, item)
改为(e) => onItemClick(e, item)
,一切都能正常工作。
如果有人能解释我做错了什么,为什么我会得到这个错误,那就太好了
更新1:< p > < br > onItemClick函数如下所示。 . setState导致错误消失onItemClick(e, item) {
this.setState({
lang: item,
});
}
但是我不能删除这一行,因为我需要更新这个组件的状态