我有以下问题,我需要从一个组件调用一个函数到另一个组件。
我有 X 组件,当用户滚动到站点末尾时会对其进行验证,当发生这种情况时,您可以执行操作,无论是警报、setState 还是其他。
container.onscroll = function () {
let height = this.clientHeight;
let scrollHeight = this.scrollHeight;
let scrollTop = this.scrollTop;
if (height + scrollTop === scrollHeight) {
_this.setState({ display: 'loader'});
funcionupdate() <--
setTimeout(function(){ _this.setState({ display: 'hidden'}); }, 2000);
}
}
另一方面,Y 分量,其中有一个函数update()
。
如何从组件执行update()
组件功能?Y
X
您可以通过来执行此操作
Context
,其父容器必须包含滚动向下时要执行的函数。如果通信的组件甚至不是兄弟姐妹,这样会非常复杂。保持简单的最佳选择是在您的应用程序中实现观察者设计模式。通过这种方式,您可以在任何一组组件(不仅仅是两个)之间建立通信。您可以为此使用Postal.js、PubSub.js、MicroEvent.js或EventEmitter2等库。例子
注意:该示例使用Postal.js库,该库又依赖于lodash。