Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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
Javascript 在jsx中使用带构造函数的bind this时传递param_Javascript_Reactjs - Fatal编程技术网

Javascript 在jsx中使用带构造函数的bind this时传递param

Javascript 在jsx中使用带构造函数的bind this时传递param,javascript,reactjs,Javascript,Reactjs,JSX 如何将参数从Jsx传递到我的handleSave函数?我并没有把一切都安排妥当。标记是另一个组件的子组件。根据函数名称,我假定您希望根据事件传递参数,因此如果是这种情况,您可以执行以下操作: handleSave(param){ } this.handleSave(e.target.value)}/> 箭头函数保留此的上下文,因此您不必使用bind。根据函数名,我假定您希望根据事件传递参数,因此如果是这样,您可以执行以下操作: handleSave(param){ } this

JSX


如何将参数从Jsx传递到我的handleSave函数?我并没有把一切都安排妥当。标记是另一个组件的子组件。

根据函数名称,我假定您希望根据事件传递参数,因此如果是这种情况,您可以执行以下操作:

handleSave(param){

}
this.handleSave(e.target.value)}/>

箭头函数保留此的上下文,因此您不必使用bind。

根据函数名,我假定您希望根据事件传递参数,因此如果是这样,您可以执行以下操作:

handleSave(param){

}
this.handleSave(e.target.value)}/>

箭头函数保留了此的上下文,因此您不必使用bind。

您可以在调用bind时设置参数

<a onClick={(e) => this.handleSave(e.target.value) }/></a>
类应用程序扩展组件{
handleClick(名称){
警报(this.props.appName+”:“+name);
}
render(){
返回(
点击这里
);
}
}

您可以在调用
bind

<a onClick={(e) => this.handleSave(e.target.value) }/></a>
类应用程序扩展组件{
handleClick(名称){
警报(this.props.appName+”:“+name);
}
render(){
返回(
点击这里
);
}
}

在JSX元素上绑定函数不是一个好做法,您应该在构造函数上绑定它们,这样,它不会在每次渲染时生成函数:

class App extends Component {
  handleClick(name){
    alert(this.props.appName + " : " + name);
  }
  render() {
    return (
      <div className="App">
        <a onClick={this.handleClick.bind(this, this.props.appName)} >Click Here</a>
      </div>
    );
  }
}
类应用程序扩展组件{
建造师(道具){
超级(道具);
this.handleClick=this.handleClick.bind(this,this.props.appName);
}
handleClick(名称){
警报(this.props.appName+”:“+name);
}
render(){
返回(
点击这里
);
}
}

在JSX元素上绑定函数不是一个好做法,您应该在构造函数上绑定它们,这样,它不会在每次渲染时生成函数:

class App extends Component {
  handleClick(name){
    alert(this.props.appName + " : " + name);
  }
  render() {
    return (
      <div className="App">
        <a onClick={this.handleClick.bind(this, this.props.appName)} >Click Here</a>
      </div>
    );
  }
}
类应用程序扩展组件{
建造师(道具){
超级(道具);
this.handleClick=this.handleClick.bind(this,this.props.appName);
}
handleClick(名称){
警报(this.props.appName+”:“+name);
}
render(){
返回(
点击这里
);
}
}

使用
this.handleSave.bind(this,param)
或者如果需要,可以使用ES6 arrow函数
onClick={()=>handleSave(param)}
请参阅关于如何使用箭头函数的答案。可能重复使用
this.handleSave.bind(this,param)
或者如果需要,可以使用ES6箭头函数
onClick={()=>handleSave(param)}
请参阅有关如何使用箭头函数的答案。由于您使用了箭头函数,所以可能的重复项不绑定此项。在我的例子中使用bind没有什么错。这就是为什么我说“我想你应该根据事件传递一个参数”。如果你分享了更多关于你想要传递的参数的信息,答案会更切题。你不必绑定它,因为你使用了arrow函数。在我的例子中使用bind没有什么错。这就是为什么我说“我想你应该根据事件传递一个参数”。如果您分享了更多关于您希望传递的参数的信息,那么答案将更加切中要害。