Reactjs 如何将参数传递给React中类组件内的方法?
我正在做一个项目。我试图将item.id作为参数传递给事件处理程序。但我不知道如何将值作为参数发送,以及如何访问方法中的值。我正在做的程序如下所示。有人能帮我解决这个问题吗Reactjs 如何将参数传递给React中类组件内的方法?,reactjs,Reactjs,我正在做一个项目。我试图将item.id作为参数传递给事件处理程序。但我不知道如何将值作为参数发送,以及如何访问方法中的值。我正在做的程序如下所示。有人能帮我解决这个问题吗 class ItemList extends React.Component { constructor(props) { super(props); this.onClick = this.onClick.bind(this); } render() { return <div
class ItemList extends React.Component {
constructor(props) {
super(props);
this.onClick = this.onClick.bind(this);
}
render() {
return <div>
{this.props.items.map(item =>
<button key={item.id} item={item} onClick={this.onClick} />
)}
</div>;
}
onClick(itemId) {
console.log('Clicked item:', itemId);
}
}
class ItemList扩展了React.Component{
建造师(道具){
超级(道具);
this.onClick=this.onClick.bind(this);
}
render(){
返回
{this.props.items.map(item=>
)}
;
}
onClick(itemId){
log('Clicked item:',itemId);
}
}
render(){
返回
{this.props.items.map(item=>
{this.onClick(item.id)}/>
)}
;
}
onClick(itemId){
log('Clicked item:',itemId);
}
您可以使用{()=>{…}
注意
如果编写这样的代码onClick={this.onClick(item.id)}
,
渲染后将立即执行该命令
因此,您应该继续这样包装它们:
onClick={()=>{…}
这样写:onClick={()=>this.onClick(item.id)}
或onClick={this.onClick.bind(this,item.id)}
感谢您的回复,它现在正在工作。我还有一个疑问。当我们按下列表中的元素时,我正试图打勾。为了做到这一点,我需要有一个布尔数组的大小,项目(列表变量)。但是列表变量项是动态的,因此如何使用值“false”初始化布尔变量。有人能帮我吗?@Gauranga你的意思是如果项目
没有项目,你就不想执行map()
?是的,项目的大小是动态的。@Gauranga很简单,{(this.props.items | |[]).map(item=>
也许我不明白您到底想要什么。上面的代码适用于这两种情况。我想您没有明白我的问题。我想根据items list变量的大小创建一个动态布尔数组,以便在onClick方法中使用它
render() {
return <div>
{this.props.items.map(item =>
<button key={item.id} item={item} onClick={()=>{this.onClick(item.id)}} />
)}
</div>;
}
onClick(itemId) {
console.log('Clicked item:', itemId);
}