javascript - 在 React 中访问父组件的 onClick 方法

标签 javascript node.js express reactjs

正如标题所示,我只是想通过子组件访问 React 中父组件的方法。我知道这可以通过 Prop 来完成,但是我试图通过 onClick 事件来完成,但它似乎并不喜欢那样。这是我的问题的一个基本示例。

var Child = React.createClass({

render: function() {
    return (

        <button onClick={this.onClick}>Click Here</button>
  );
 }
});   


var Parent = React.createClass({

onClick: function() {
    console.log('I've been clicked');
  },


render: function() {
    return (

        <Child />

  );
 }
});

ReactDOM.render(<Parent />, document.getElementById('Parent'));

如何让子组件的按钮 onClick 事件触发父组件的 onClick 方法?感谢您的帮助。

最佳答案

您可以将 Parent 的 onClick 函数作为 prop 传递给 Child:

<Child myClick={this.onClick} />

然后在 Child 中使用它:

<button onClick={this.props.myClick}>Click Here</button>

完整代码:

var Child = React.createClass({
    render: function() {
        return (<button onClick={this.props.myClick}>Click Here</button>)
    }
});

var Parent = React.createClass({
    onClick: function() {
        console.log("I've been clicked");
    },

    render: function() {
        return (<Child myClick={this.onClick} />);
    }
});

ReactDOM.render(<Parent />, document.getElementById('container'));

关于javascript - 在 React 中访问父组件的 onClick 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40391363/

相关文章:

javascript - 如何在通过无限滚动加载图像时将我的脚本应用于图像?

javascript - API 端点在不等待 promise 的情况下返回有什么缺点吗?

javascript - 将 MongoDB/ExpressJS 查询存储到数组中并显示到 HTML 表中

javascript - 在 HTML5 canvas 中通过鼠标移动绘制半透明线条

javascript - 添加脚本标签并顺序加载脚本

mysql - 如何使用 knex 使用 "Insert ... ON DUPLICATE KEY UPDATE"添加多行

node.js - 打开 api 错误 : request should have required property '.headers' - docker

javascript - 如何将 Node JS 请求的结果主体显示到浏览器?

node.js - "Error: socket hang up"与 express

javascript - 加载后清除 AJAX 结果