reactjs – 如何传递参数到React js中的函数?

前端之家收集整理的这篇文章主要介绍了reactjs – 如何传递参数到React js中的函数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
>我想在警报窗口中显示个人的电子邮件。但是,我不知道如何将email作为参数传递给displayAlert方法。此外,它也不会让我使用。所以,我必须将一个变量赋给displayAlert methos,并在onClick中使用它。我不知道为什么不让我直接打电话给他。
class People extends React.Component{
render (){
        var handleClick = this.displayAlert;
        var items = this.props.items.map(function(item) {
            return(
                <ul key = {item.id}>
                    <li>
                        <button onClick= {handleClick}>{item.lastName + ',' + item.firstName}</button>
                    </li>
                </ul>
            )
        });
        return (<div>{items}</div>);
 }

displayAlert (){
    alert('Hi');
}
}

 class PersonList extends React.Component{
     render () {
        return (
    <div>
        <People items={this.props.people}/> /* People is an array of people*/
    </div>
    );
  }
}
ES6方式:

使用箭头函数=>

const items = this.props.items.map((item) => (
  <ul key={item.id}>
    <li>
      <button onClick={() => this.displayAlert(item.email)}>
        {item.lastName + ',' + item.firstName}
      </button>
    </li>
  </ul>
));

onClick匿名函数调用并执行this.displayAlert(item.email)

ES5方式:

您可以使用.bind执行此操作,并将参数传递到那里。

你也应该传递这个或使用bind来保持你的.map函数上的正确上下文:

var items = this.props.items.map(function(item) {
  return (
    <ul key={item.id}>
      <li>
        <button onClick={this.displayAlert.bind(this,item.email)}>
          {item.lastName + ',' + item.firstName}
        </button>
      </li>
    </ul>
  );
},this);

示例如下:React – Communicate Between Components

猜你在找的React相关文章