React 错误:对象作为子对象
在 React 应用程序中,“不变违规:对象作为 React 子对象无效”错误发生在以下情况尝试将对象渲染为组件的子对象。当子级期望一个字符串、数字或元素但收到一个对象时,就会出现此问题。
在给定的示例中,在 render 方法中的地图函数中, this.onItemClick.bind(this, item ) 错误地将整个事件对象作为属性传递给 onClick 处理程序。因此,onClick 事件处理程序接收该事件及其属性作为对象,从而触发错误。
要解决此问题,您可以在地图内使用箭头函数来处理单击事件并传递必要的参数:
render() { const items = ['EN', 'IT', 'FR', 'GR', 'RU'].map((item) => { return (<li onClick={(e) => this.onItemClick(e, item)} key={item}>{item}</li>); }); return ( <div> ... <ul> {items} </ul> ... </div> ); }
或者,如果您希望保留事件对象,则可以仅绑定必要的参数:
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> ); }
以上是为什么我在我的 React 应用程序中收到'不变违规:对象作为 React 子项无效”?的详细内容。更多信息请关注PHP中文网其他相关文章!