gpt4 book ai didi

reactjs - 如何在 React js 中向函数传递参数?

转载 作者:行者123 更新时间:2023-12-03 12:59:13 26 4
gpt4 key购买 nike

  1. 我想在警报窗口中显示某人的电子邮件。但是,我不知道如何将电子邮件作为参数传递给 displayAlert 方法。而且,它也不让我使用。因此,我必须将 displayAlert 方法分配给变量并在 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来做到这一点并将参数传递到那里。

您还应该传递this或使用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

关于reactjs - 如何在 React js 中向函数传递参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30608347/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com