gpt4 book ai didi

javascript - 无法使用 React 从子组件调用父组件中的函数

转载 作者:行者123 更新时间:2023-12-02 14:06:34 26 4
gpt4 key购买 nike

我有 2 个文件:

grid-body.jsx(GridBody)和grid-row.jsx(GridRow)

在 GridBody 中,我声明了一个函数 showAlert,并将其传递给每个 GridRow:

var GridBody = React.createClass({
showAlert: function(msg) {
alert(msg);
},

render: function() {
var rows = this.props.rows.map(function(li) {
return (
<GridRow showAlert={this.showAlert} />
);
});

return (
<div>
{rows}
</div>
);
}
});

在 GridRow 中:

var GridRow = React.createClass({
toggle: function() {
this.props.showAlert('HEY'); // -----> ERROR - not a function
},

render: function() {
<div>
<a href="#" onClick={this.toggle} />
</div>
}
});

我正在尝试从父级调用 showAlert,并根据我所看到的示例,这是如何做到这一点,但我无法使其工作。

最佳答案

您在 GridView.render 内的 this 使用了错误的值。要么将其显式传递给 Array.map() (请参阅 docs 了解如何执行此操作),要么将 this 分配给 最顶部的某个新变量>render() 并引用它。

Here这是一个非常非常好的评论,解释了为什么会发生这种情况,以及如果上述方法都不适合您的话,还有其他一些替代解决方法。

关于javascript - 无法使用 React 从子组件调用父组件中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40011652/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com