我有一个React-redux应用程序,包含存储、操作、reducer和所有这些东西。所有的工作需要。但有一个小问题。通过点击一个按钮,我必须显示一个IFrame,其中另一个React应用程序被加载(非常过时的React)。即使在这里,一切都是必要的。无法捕获从过时的应用程序触发的事件。为了触发事件,我使用了这样的代码
window.parent.$(window.parent.document).trigger('HIDE_QUOTE_EDIT', {sender: 'quote-edit'});
我尝试在主应用程序中订阅这个
$(document).on('HIDE_QUOTE_EDIT', () => {console.log('Caught hide quote edit');});
,但这从来没有像需要的那样工作。
- 处理这种情况的最佳方法是什么? 如果我以某种方式捕获此事件,我如何获得对
dispatch
对象的引用,以便我可以调用操作?Thx
注:我知道这不是一个正确的设计,但我必须用我所有的。
- 不要使用jQuery从节点,使用jQuery对象从常规jQuery脚本在你的html页面,否则事件将不会被捕获
- 在mapDispatchToProp中保存
dispatch
对象,你可以通过this.props.dispatch
访问它并调度任何你想要的动作
解决问题。