Javascript 在使用我的action creators时,是否有一种方法可以从全局的Vanilla JS函数与我的Redux商店通信?

Javascript 在使用我的action creators时,是否有一种方法可以从全局的Vanilla JS函数与我的Redux商店通信?,javascript,redux,Javascript,Redux,我正在迭代地重建一个遗留系统,以使用React/Redux。它在大部分时间里工作得很好!我现在面临的一个大问题是,旧系统有很多嵌套的iframe,它们将使用top.functionName()与应用程序的其余部分通信。因为我不能一次重建所有内容,所以我需要编写某种接口,通过top.functionName()与我的Redux存储进行通信 我知道我可以使用$r.store.dispatch直接向还原者发送动作,但如果可能的话,我真的希望直接使用动作创建者。有什么方法可以做到这一点吗?创建一个对象,

我正在迭代地重建一个遗留系统,以使用React/Redux。它在大部分时间里工作得很好!我现在面临的一个大问题是,旧系统有很多嵌套的iframe,它们将使用top.functionName()与应用程序的其余部分通信。因为我不能一次重建所有内容,所以我需要编写某种接口,通过top.functionName()与我的Redux存储进行通信


我知道我可以使用$r.store.dispatch直接向还原者发送动作,但如果可能的话,我真的希望直接使用动作创建者。有什么方法可以做到这一点吗?

创建一个对象,该对象的操作用
分派
包装,并将该对象设置为
窗口上的属性:

const demoStore = createStore(reducer);

window.reduxActions = bindActionCreators(actionCreators, demoStore.dispatch);
  • 将所有动作作为一个对象导入,或使用“扩展”或“合并”将所有动作合并到一个对象

    动作的对象应该是这样的

    const actionCreators = {
        actionA: (payload) => ({ type: 'actionA', payload }),
        actionB: (payload) => ({ type: 'actionB', payload }),
        // etc...
    };
    
  • 使用dispatch包装操作,并将其分配给
    窗口上的属性

    const demoStore = createStore(reducer);
    
    window.reduxActions = bindActionCreators(actionCreators, demoStore.dispatch);
    
  • 使用以下命令从iFrame调用您的操作:

    top.reduxActions.actionA(15);
    

  • 创建一个对象,将动作包装为
    分派
    ,并将该对象设置为
    窗口
    上的属性:

    const demoStore = createStore(reducer);
    
    window.reduxActions = bindActionCreators(actionCreators, demoStore.dispatch);
    
  • 将所有动作作为一个对象导入,或使用“扩展”或“合并”将所有动作合并到一个对象

    动作的对象应该是这样的

    const actionCreators = {
        actionA: (payload) => ({ type: 'actionA', payload }),
        actionB: (payload) => ({ type: 'actionB', payload }),
        // etc...
    };
    
  • 使用dispatch包装操作,并将其分配给
    窗口上的属性

    const demoStore = createStore(reducer);
    
    window.reduxActions = bindActionCreators(actionCreators, demoStore.dispatch);
    
  • 使用以下命令从iFrame调用您的操作:

    top.reduxActions.actionA(15);
    

  • 动作创建者所做的只是返回一个对象,并将其传递给
    dispatch
    。因此,无论您是在React内部还是在应用程序的不同部分,您都会调用应用程序的
    store.dispatch
    ,我希望能够在一个位置获得任何附加逻辑的好处。既然我的函数(比如
    actions.js
    )不是在全局范围内定义的,我怎么能执行类似于thunk的操作呢?有没有办法将其公开给$r.store?动作创建者所做的就是返回一个对象,并将其传递给
    dispatch
    。因此,无论您是在React内部还是在应用程序的不同部分,您都会调用应用程序的
    store.dispatch
    ,我希望能够在一个位置获得任何附加逻辑的好处。既然我的函数(比如
    actions.js
    )不是在全局范围内定义的,我怎么能执行类似于thunk的操作呢?有没有办法把它暴露给$r.store?