javascript - 从子类 ReactJS 将参数传递给父类中的事件处理程序

标签 javascript reactjs eventhandler

我试图将参数传递给父类中的事件处理程序,但遇到了一些困难。我已经做了大量的研究并且即将给出答案,但有些东西不太有效。下面我将给出一个基本的假设示例,说明我想做的事情是行不通的。

class Parent extends React.Component {
       constructor(props){
           super(props);
           this.handleClick = this.handleClick.bind(this);
       }

       handleClick(i){
           return event => console.log(i);
       }

       render(){
          return <Child onClick={this.handleClick}></button>;
       }
}

class Child extends React.Component {
       render() {
            const myVar = 2;
            return <button onClick={this.props.onClick(myVar)}></button>;
       }
}

我知道传递给 Child 的 onClick 属性不是函数,因此我无法直接向它传递参数。这样做的最佳方法是什么?感谢您的帮助!

最佳答案

对您的代码进行以下更新

class Child extends React.Component{
       render(){
            const var = 2;
            return <button onClick={ () => {this.props.onClick(var)} }</button>;
       }
}

此外,您应该重构父级使用的以下方法。您不必要地传递了 e

handleClick(i){
    console.log(i);
}

立即调用子组件上的 onClick,而不是等待 onClick 事件触发。

关于javascript - 从子类 ReactJS 将参数传递给父类中的事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55293117/

相关文章:

javascript - 使用 Facebook Javascript SDK 发布到用户 friend 的墙上 - 获得有效响应但帖子不会出现在 Facebook 上

javascript - 使用 Apollo-Client 对 GitHub API v4 进行身份验证

javascript - 如何通过输入字段使用 React JS 更新 Highcharts

JavaFX 事件处理程序 nullpointerException

javascript - 在 HTML 上显示 AngularFireList 数据时出现错误

javascript - 有没有办法让谷歌可视化表中最左边的列在横向滚动时保持固定?

javascript - 通过 css/js/html 强制设备方向为横向?

reactjs - 水平分页: How to find which page that's currently active?

javascript - javascript中的事件与事件处理程序

eventhandler - 另一个类中的轴突事件处理程序