大多数的开发人员都会发现dvaJS和umiJS是状态管理和应用程序开发的天堂。Dva是基于elm的状态管理工具,它使用react-redux进行状态管理。
问:如何访问UMI应用程序中的DVA存储,在组件之外或不使用connect
问:如何在UMI应用程序中存储dispatch数据仓库,在组件之外还是不使用connect
发布于 2020-07-24 11:55:37
问:如何访问UMI应用程序中的DVA存储,在组件之外或不使用connect
答:https://v2.umijs.org/guide/with-dva.html#how-to-access-store-or-dispatch
它说使用:
window.g_app._store问:如何在UMI应用程序中存储dispatch数据仓库,在组件之外还是不使用connect
答:https://v2.umijs.org/guide/with-dva.html#how-to-access-store-or-dispatch
它说使用:
window.g_app._store.dispatch('namespace/action')奖励:
问:如何在UMI应用程序中存储get state of数据仓库,在组件之外还是不使用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。
发布于 2020-10-21 02:21:24
要访问或分派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})发布于 2021-12-30 11:30:27
作为和额外引用,以及那些在react组件上下文之外搜索访问react应用程序引用的用户,同时使用:
您可以使用getDvaApp导出方法:
import { getDvaApp } from 'umi';
const dispatch = getDvaApp()._store.dispatch;
// use the `dispatch`https://stackoverflow.com/questions/63073047
复制相似问题