嗨,大多数 React 开发人员会发现 dvaJS 和 umiJS,它们是状态管理和应用程序开发的天堂。Dva 是elm
基于状态管理的工具,react-redux
用于状态管理。
Q:在UMI应用程序中,组件外或无组件时如何访问DVA Store connect
?
问:如何dispatch
在 UMI 应用程序中进行 DVA 存储,在组件之外或没有组件connect
?
Q:在UMI应用程序中,组件外或无组件时如何访问DVA Store connect
?
答:https ://v2.umijs.org/guide/with-dva.html#how-to-access-store-or-dispatch
它说使用:
window.g_app._store
问:如何dispatch
在 UMI 应用程序中进行 DVA 存储,在组件之外或没有组件connect
?
答:https ://v2.umijs.org/guide/with-dva.html#how-to-access-store-or-dispatch
它说使用:
window.g_app._store.dispatch('namespace/action')
问:如何get state of
在 UMI 应用程序中进行 DVA 存储,在组件之外或没有组件connect
?
答:https ://v2.umijs.org/guide/with-dva.html#how-to-access-store-or-dispatch
它说使用:
window.g_app._store.getState()
可用功能:
asyncReducers: {}
dispatch: ƒ ()
getState: ƒ f()
replaceReducer: ƒ (n)
runSaga: ƒ ()
subscribe: ƒ subscribe(listener)
推荐:不要直接使用,写一个导出这些函数的Util。
要在 UMI 应用中访问或调度 DVA 商店,您可以在功能组件中使用 DVA 挂钩,无需连接。它只能与 DVA v2.6.x 一起使用。
在功能组件中:
const state = useSelector(state => state)
// If state in DVA store changed, rendered values in "state" can be changed in page too.
或者
const store = useStore()
const state = store.getState()
// If state in DVA store changed, rendered values in "state" won't be changed in page.
const dispatch = useDispatch()
dispatch({type: "namespace/action", payload: 12345})
作为和额外的参考以及那些在使用时搜索在组件上下文dva
之外访问应用程序参考的人:react
您可以使用getDvaApp
导出的方法:
import { getDvaApp } from 'umi';
const dispatch = getDvaApp()._store.dispatch;
// use the `dispatch`