首页 > 解决方案 > onChange 在哪里将参数传递给它的处理程序

问题描述

使用下面的代码

<div className="input-first-line-right">
  <Input
  type="textarea"
  label="Project Description"
  onChange={this.handleDescChange}
  value={this.state.projectDescription}
  />
</div>
  handleDescChange = text => {
    if (!text) return;
    this.setState({ projectDescription: text });
  };

如果handleDescChange 期待一个参数“文本”,它为什么永远不会通过。意思是为什么不是代码

onChange={this.handleDescChange("some new text")}

为了使功能正常工作。如果没有任何东西传递给它,代码如何固有地知道参数是什么。

标签: reactjscomponentsonchange

解决方案


对于onChange属性,this.handleDescChange这里不调用。在这里,this.handleDescChange作为回调给出。this.handleDescChange触发更改事件时调用输入组件。

如果你想传递一个变量,你可以使用胖箭头函数。下面给出解决方案。

<div className="input-first-line-right">
  <Input
  type="textarea"
  label="Project Description"
  onChange={event => this.handleDescChange(event.target.value)}
  value={this.state.projectDescription}
  />
</div>
handleDescChange = text => {
    if (!text) return;
    this.setState({ projectDescription: text });
  };

推荐阅读