当前位置: 首页 > 面试题库 >

为什么React会警告我不要将组件方法绑定到对象?

东门俊智
2023-03-14
问题内容

我这里有这个组件。我想将调用处理程序传递给我创建的每个listElement。如果我像下面那样使用bind(this),则可以正常运行。问题是我从控制台的React收到此警告:bind(): You are binding a component method to the component. React does this for you automatically in a high-performance way, so you can safely remove this call.

var MyList = React.createClass({
  render: function () {
    var listElements = this.props.myListValues.map(function (val) {
      return (
        <ListElement onCallHandler={this.props.parentsCallHandler} val={val} />
        );
    }.bind(this));
    return (
      <ul>
          {listElements}
      </ul>
      );
  }
});

如果我不绑定它,我的孩子们将不了解呼叫处理程序。我可以做些什么?

PS:

我知道解构作业,如http://facebook.github.io/react/docs/transferring-
props.html#transferring-with-…-in-
jsx所述

,但我不想使用Harmony。


问题答案:

该错误来自代码中的其他地方。当您执行此操作时会收到错误,this.someFunction.bind(something)而某些操作则不会null

this.someFunction.bind({}, foo);    // warning
this.someFunction.bind(this, foo);  // warning, you're doing this
this.someFunction.bind(null, foo);  // okay!

.bind(this在您的代码中进行搜索以查找违规行。



 类似资料:
  • 我有这个组件。我想将调用处理程序传递给我创建的每个listElement。如果我像下面这样做,使用,它可以正常工作。问题是,我从控制台中的React中得到此警告:

  • 我有一个类似于示例中的组件 我想问-是否有某种不同的解决方案将函数绑定到组件,除了像我在构造函数中使用的(从留档中读取)。因为我可以有100个函数,我要传递给子组件或在这个组件中使用等等。

  • 我的目标是从一个项目中创建一个原型。 当我运行一个不涉及maven原型插件的目标时,我看不到任何警告: 另一方面,当我运行archetype:createfromproject时,我得到了几个: 我知道标准的maven方法是使用属性。为了解决这个问题,我试图向pom添加更多的属性,但没有一个有效。 有什么想法吗?谢谢 我有下面的pom。xml:

  • 我不明白为什么我收到以下代码的警告: 未选中对<code>isAssignableFrom(类)的调用 当我使用< code>isInstance方法时(根据我的理解,它提供相同的结果),我没有得到警告:

  • 在呈现组件时,我得到以下警告: 我想我的组件应该完全像托管输入字段那样工作,没有任何问题: 是初始值 回调更新中的道具 使用新道具呈现组件

  • 问题内容: 渲染组件时收到以下警告: 警告:组件 由React 组成,包含。现在,您有责任保证所有这些节点均不会意外修改或重复。这可能不是故意的。 这是我的组件: React想要警告我的代码潜在的问题是什么?通过阅读https://reactjs.org/docs/dom- elements.html上 的文档,我不太了解。 我以为我的组件应该完全像托管输入字段一样工作,没有任何问题: 是初始值