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

如何将多个参数传递给输入的onChange处理程序

应涵容
2023-03-14
问题内容

我在数组中呈现对象输入元素的集合

render: function() {
    var ranges = [];
    this.props.ranges.map(function(range, index) {
        var rangeElement = <Input type="text"
            value={range.name} onChange={this.changeRangeName.bind(this)} />
        ranges.push(rangeElement);
    }, this);

    // render ranges
}

这使我可以编写onChange处理函数:

changeRangeName: function (event) {
    var newName = event.target.value;
},

但是在此处理程序中,我需要更改的范围对象的ID。因此,我可以更改更改在渲染函数中创建输入元素的方式并更改:

var rangeElement = <Input type="text"
            value={range.name}
            onChange={this.changeRangeName.bind(this, range.id)} />

现在,我的处理程序将接收range.id作为参数,但是现在我没有newName值。我可以使用裁判获得它

var rangeElement = <Input type="text"
            ref={'range' + range.id}
            value={range.name}
            onChange={this.changeRangeName.bind(this, range.id)} />

这是我知道的唯一解决方案,但我怀疑有更好的解决方案。


问题答案:

event参数还通过了,但rangeId参数前置到参数列表,让你的changeRangeName方法看起来像

changeRangeName: function (rangeId, event) {
    var newName = event.target.value;
},

参见Function.prototype.bind()



 类似资料:
  • 问题内容: 我试图将我的数据库对象传递给我的处理程序,而不是具有全局对象。但是我不知道这是否可行,我使用的是Gorilla Mux软件包,我可以看到它把闭包作为第二个参数。 然后定义了我可以使用的参数,理想情况下,我希望拥有这样的第三个参数。 有解决方法吗?还是我需要一个全局数据库对象?我是Go的新手,所以请详细说明可能的答案。 问题答案: 欢迎来到。 可以使用全局变量,特别是数据库对象。 但是,

  • 问题内容: 在SQL Server 2014中,我试图创建一个动态的WHERE子句。 我已将查询构建为字符串,但是当我尝试使用sp_executesql执行查询时,出现以下错误:提示 13您必须声明标量变量“ @desde”。 我不知道如何使sp_executesql识别输入参数。 问题答案: 代替 使用 您必须定义在动态查询中使用的参数,例如 请参考sp_executesql 否则,您可以将动态

  • 问题内容: 所以我试图使反应与ES6语法一起工作。在ES5中,我有setInitialState,而没有使用函数绑定语法的构造函数。我有一个价格列表,该价格是任意的,并且我希望状态在输入元素发生更改时发生变化。但是正确的价格必须改变。 我什至不确定这是否是正确的方法。有人可以告诉我最近应做的事情吗? 这是我的代码: 这是错误… 问题答案: 您绑定的功能不正确 在构造函数中,您无需指定参数,只需要像

  • 所以我试图用ES6语法使反应工作。在ES5中,我没有使用函数绑定语法的构造函数。我有一个任意的价格列表,当输入元素改变时,我希望状态改变。但是正确的价格必须改变。 我甚至不确定这是正确的方法。有人能告诉我最近应该怎么做吗? 这是我的代码: 这就是错误...

  • 问题内容: 在我的我有一个按钮。我想通过在方法中传递多个参数来为其添加动作。 问题答案: 也许你可以做这样的事情 根据您的要求创建标签值并保持其完整性。

  • 问题内容: 在采用可变数目从该给出的函数被调用iterables的。 如果我有一个生成元组的生成器,这些元组通常在原位打开,该如何命名? 以下代码不起作用,因为每个生成的元组均作为map的不同参数给出: 没有生成器,要映射的所需参数可能如下所示: 问题答案: 您需要删除的电话: 这将调用,时间,应在何处接受一个参数。 在Linux上 ,如果要接受两个参数,则可以使用lambda调用,例如: