当前位置: 首页 > 知识库问答 >
问题:

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

东门彬
2023-03-14

我有这个组件。我想将调用处理程序传递给我创建的每个listElement。如果我像下面这样做,使用bind(this),它可以正常工作。问题是,我从控制台中的React中得到此警告:bind():您正在将组件方法绑定到组件。React以高性能方式自动为您执行此操作,因此您可以安全地删除此呼叫

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>
      );
  }
});

如果我不绑定它,我的孩子就不知道调用处理程序。我能做些什么不同的事?

附言:

我知道破坏任务,就像http://facebook.github.io/react/docs/transferring-props.html#transferring-with-...-in-jsx解释的那样,但我不想使用和谐。


共有2个答案

鲜于勇
2023-03-14

这里是更新文档的例子

React.createClass({
  onClick: function(event) {/* do something with this */},
  render: function() {
    return <button onClick={this.onClick} />;
  }
});

在JS文档中更新

董桐
2023-03-14

错误来自代码中的其他地方。执行此操作时会出现错误。某种功能。绑定(某物)而某物不是null

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

搜索。在代码中绑定(此)以查找有问题的行。

 类似资料:
  • 问题内容: 我这里有这个组件。我想将调用处理程序传递给我创建的每个listElement。如果我像下面那样使用,则可以正常运行。问题是我从控制台的React收到此警告: 如果我不绑定它,我的孩子们将不了解呼叫处理程序。我可以做些什么? PS: 我知道解构作业,如http://facebook.github.io/react/docs/transferring- props.html#transfe

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

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

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

  • 问题内容: 我们都知道我们需要在React中绑定函数以使其起作用。我知道为什么我们需要绑定它。 但是我不确定为什么我们不需要绑定箭头功能。 示例:使用箭头功能(无需绑定) }; 现在,使用功能(需要绑定) }; 我不是在问为什么我们需要绑定功能。我只想知道为什么箭头功能不需要绑定。 谢谢。 问题答案: 仅仅因为arrow函数的上下文中没有以下内容: 这个 论点 超 新目标 所以,当你引用此箭头功能

  • 我正在使用Eclipse和Java。我已经设置了jena库并使用这个库完成了我的第一个RDF语句,但是我得到了一个警告,我不知道它到底意味着什么。代码如下: 这是输出: 所以代码确实可以编译和工作,但我不知道如何处理这个警告。我怎样才能摆脱它?