Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何将参数传递给React中类组件内的方法?_Reactjs - Fatal编程技术网

Reactjs 如何将参数传递给React中类组件内的方法?

Reactjs 如何将参数传递给React中类组件内的方法?,reactjs,Reactjs,我正在做一个项目。我试图将item.id作为参数传递给事件处理程序。但我不知道如何将值作为参数发送,以及如何访问方法中的值。我正在做的程序如下所示。有人能帮我解决这个问题吗 class ItemList extends React.Component { constructor(props) { super(props); this.onClick = this.onClick.bind(this); } render() { return <div

我正在做一个项目。我试图将item.id作为参数传递给事件处理程序。但我不知道如何将值作为参数发送,以及如何访问方法中的值。我正在做的程序如下所示。有人能帮我解决这个问题吗

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);
  }