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