首页 > web前端 > js教程 > 为什么我在我的 React 应用程序中收到'不变违规:对象作为 React 子项无效”?

为什么我在我的 React 应用程序中收到'不变违规:对象作为 React 子项无效”?

Barbara Streisand
发布: 2024-11-08 04:00:02
原创
326 人浏览过

Why Am I Getting

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板