错误提示:不可以在React中使用对象作为子元素。
错误提示:不可以在React中使用对象作为子元素。
在我的组件的 render 函数中,我有以下内容:
render() { const items = ['EN', 'IT', 'FR', 'GR', 'RU'].map((item) => { return (
- {item}
); }); return ( ...
- {items}
... ); }
一切都正常地渲染,然而当点击
- 元素时,我会收到以下错误:
Uncaught Error: Invariant Violation: Objects are not valid as a React child (found: object with keys { dispatchConfig, dispatchMarker, nativeEvent, target, currentTarget, type, eventPhase, bubbles, cancelable, timeStamp, defaultPrevented, isTrusted, view, detail, screenX, screenY, clientX, clientY, ctrlKey, shiftKey, altKey, metaKey, getModifierState, button, buttons, relatedTarget, pageX, pageY, isDefaultPrevented, isPropagationStopped, _dispatchListeners, _dispatchIDs }). If you meant to render a collection of children, use an array instead or wrap the object using createFragment(object) from the React add-ons. Check the render method of
Welcome
.如果我改变映射函数内的
this.onItemClick.bind(this, item)
为(e) => onItemClick(e, item)
,一切都按预期工作。如果有人能解释我做错了什么以及为什么会出现这个错误,那将会是很好的。
UPDATE 1:
onItemClick 函数如下所示,删除 this.setState 后错误消失。
onItemClick(e, item) { this.setState({ lang: item, }); }
但我无法删除此行,因为我需要更新此组件的状态。