如何在reactJS中将其他参数传递给事件侦听器
我试图将其他参数传递给onChange处理程序,这就是react组件的外观如何在reactJS中将其他参数传递给事件侦听器,reactjs,Reactjs,我试图将其他参数传递给onChange处理程序,这就是react组件的外观 class Foo extends React.Component { handleFormChange(part, event) { console.log(event.target.value, part) } render() { return ( <
class Foo extends React.Component {
handleFormChange(part, event) {
console.log(event.target.value, part)
}
render() {
return (
<Row>
<Col>
<Form.Label>Label</Form.Label>
<Form.Control size="sm" type="text" placeholder="Label"
className="transparent" onChange={(event) => this.handleFormChange.bind('label', event)}/>
</Col>
)
}
}
类Foo扩展了React.Component{
handleFormChange(部分、事件){
console.log(event.target.value,部分)
}
render(){
返回(
标签
this.handleFormChange.bind('label',event)}/>
)
}
}
但我的事件侦听器似乎什么都没做。我可以在上面输入,但控制台中没有显示任何消息。正确的方法是什么
如果我更改它,使它只是
onChange={this.handleFormChange}
,那么它可以工作,但是我不能传递任何附加参数。.bind
返回一个新函数,它不会调用它。因此,您的事件处理程序只创建一个函数,而不使用它
您只需从事件处理程序调用this.handleFormChange
,或使用.bind
创建事件处理程序:
onChange={(event) => this.handleFormChange('label', event)}
// or (the first argument is assigned to `this`, not the first parameter)
onChange={this.handleFormChange.bind(this, 'label')}
我不认为
bind
做了你认为它做的事情:handleFormChange
不使用this
,因此您不需要绑定它。我删除了handleFormChange中更新状态的部分,但我确实需要this
在该方法中可访问。啊,明白了,将此事件侦听器绑定到(null,'label')会让它访问this
?我在构造函数中有另一个调用,它执行以下操作:`this.handleFormChange=this.handleFormChange.bind(this)`