Umi: Umi3.0 如何在 global.ts 中 getStore

Created on 6 Mar 2020  ·  20Comments  ·  Source: umijs/umi

What happens?


升级到 [email protected] 。没有了 g_app 变量,如何在非组件中获取 store 呢?

场景:比如在全局 request 中需要配置 store 中的数据

建议在 umi 中导出 getStore API 吧。

最小可复现仓库


复现步骤,错误日志以及相关配置


相关环境信息

  • Umi 版本:3
  • Node 版本:12
  • 操作系统:mac

All 20 comments

找到了,是 getDvaApp

找到了,是 getDvaApp

在哪里 我都把对象打印出来了还是获取不到啊

@JerryBerton

import { getDvaApp } from 'umi'

文档上也有

@JerryBerton

import { getDvaApp } from 'umi'

没有啊 直接报错了

import { getDvaApp } from 'umi'

'umi' does not contain an export named 'getDvaApp'.

你配置里面开启了 dva 的插件没

https://umijs.org/zh-CN/plugins/plugin-dva#getdvaapp

你配置里面开启了 dva 的插件没

https://umijs.org/zh-CN/plugins/plugin-dva#getdvaapp

dva: {
hmr: true
}
这不就是开启了 connect 有 其他的没有

你要把项目启动,才会生成
image

你要把项目启动,才会生成
image

你发的图片看不到啊

你启动项目试试,看看 .umi 目录里有个 plugin-dva/exports.ts

你启动项目试试,看看 .umi 目录里有个 plugin-dva/exports.ts

image

怪了,比我的少一个文件,你 preset-react 升级到最新版了吗

没有 我用的估计还是react

怪了,比我的少一个文件,你 preset-react 升级到最新版了吗

能截屏一下你的config配置吗

image

import { getDvaApp } from 'umi'

'umi' does not contain an export named 'getDvaApp'.

确认配置了有效的dva model吗?
https://umijs.org/zh-CN/plugins/plugin-dva#import--connect-%E7%AD%89-api--from-umi-%E6%97%A0%E6%95%88%EF%BC%9F
我也遇到了,最后发现是因为没配置model

朋友解决了吗 我打印 getDvaApp 是undefined

朋友解决了吗 我打印 getDvaApp 是undefined

朋友,你解决了吗?

如果你是在请求接口的api中可以这么使用
// require.js 中:
`
import axios from 'axios';
import { getDvaApp } from 'umi';
// 以下的结果是undefined ,可能原因是,这个文件初始化的时候,getDvaApp并没有生成,
console.log('getDvaApp=>', getDvaApp);

export const getUserInfo = (uid) =>{
return new Promise((resolve,reject)=>{
// 需要这样才能获取到
console.log('store------>', getDvaApp()._store.getState())
})
}`

我这里发现了一个,由vscode自动引入了 .umi 里面的getDvaApp, 而不是从 umi 中引入。导致打包后getDvaApp 获取到的是undefined

Was this page helpful?
0 / 5 - 0 ratings

Related issues

afc163 picture afc163  ·  3Comments

stoneWeb picture stoneWeb  ·  3Comments

Artoria-0x04 picture Artoria-0x04  ·  3Comments

ironyfive picture ironyfive  ·  3Comments

miaojinxing picture miaojinxing  ·  3Comments