作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在警报窗口中显示某人的电子邮件。但是,我不知道如何将电子邮件作为参数传递给 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);
关于reactjs - 如何在 React js 中向函数传递参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30608347/
我是一名优秀的程序员,十分优秀!