我希望将React/Redux函数实现为具有调度操作能力的全局实用程序.
这不是组件/容器.简单的全局/静态函数,可以被其他人导入和调用.
这可能吗?
提前感谢您提供的任何想法/建议!
Aar*_*all 23
它dispatch来自于Store你只需要一个全局参考你的Store.
因此,假设您的应用程序root看起来像这样:
const store = createStore(rootReducer);
ReactDOM.render(<Provider store={store} /> ...);
Run Code Online (Sandbox Code Playgroud)
只需导出store:
export const store = createStore(root);
Run Code Online (Sandbox Code Playgroud)
并从您的静态util导入商店:
import {store} from "../path/to/app/root";
store.dispatch({ ... });
Run Code Online (Sandbox Code Playgroud)
更好的方法是将util函数dispatch作为参数接受,这样就没有全局引用了store.
我是老派;在 app.js 中我会这样做:
window.store = store
Run Code Online (Sandbox Code Playgroud)
就是这样 - 存储全局公开,无需导入等。这将破坏服务器端渲染,但如果您在任何情况下使用全局调度,就会破坏。请参阅此推特帖子:https://twitter.com/Grynn/status/955485816389685248
引用 Dan Abramov 的回复(在上面的帖子中):
使测试变得更加困难,如果页面中有多个此类应用程序就会中断(这在大型产品的实践中会发生),使服务器渲染变得不可能。否则肯定没问题
| 归档时间: |
|
| 查看次数: |
8510 次 |
| 最近记录: |