在我的组件的渲染功能中,我有:
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、目标、currentTarget、类型、eventPhase、气泡、可取消、时间戳、defaultPrevented、isTrusted、视图、详细信息、screenX 、screenY、clientX、clientY、ctrlKey、shiftKey、altKey、metaKey、getModifierState、按钮、按钮、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,
});
}
但是我无法删除此行,因为我需要更新此组件的状态