别人做的 web app ,他本地运行没问题, 给我源代码后,我进行 yarn install ,yarn build 之后再 yarn start ,浏览器打开时报错, 错误报于 redux ,请问这是什么问题?
Error: The slice reducer for key "session" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.
发不了包含全部 error stack 的截图,只能粘贴几个关键点了:基本就是 umi 和 dva 代码和 redux 之间的问题。
_DvaContainer.render
./src/.umi/plugin-dva/dva.ts:83
80 | render() {
81 | let app = getApp();
82 | app.router(() => this.props.children);
> 83 | return app.start()();
84 | }
85 | }
86 |
initialValue
./src/.umi/umi.ts:30
27 | defaultTitle: ``,
28 | },
29 | });
> 30 | return renderClient(opts);
31 | },
32 | args,
33 | });
./src/.umi/umi.ts
./src/.umi/umi.ts:36
33 | });
34 |
35 | const clientRender = getClientRender();
> 36 | export default clientRender();
37 |
38 |
39 | window.g_umi = {
1
dream4ever 2023-09-01 14:12:37 +08:00
看见 umi 我就头大,最近在尝试字节的 arco ,目前用下来感觉还不错(跑题了,哈哈
|
2
totoro52 2023-09-01 14:29:52 +08:00
检查一下你的 npm 和 node 版本
|
3
karott7 2023-09-01 16:54:32 +08:00
试试切换一下 node 版本
|
4
gofishing 2023-09-01 17:18:35 +08:00
在项目 models 文件夹里找文件名是 session 的文件. 看它 state 字段是不是没定义.
models 文件夹可能不止一个, 文件名也能不是 session, 在文件里被 namespace 字段重写了. 总之, 就是找 dva 定义的 model, 看 state 字段是不是没定义. 参考 dva 和 umi 文档. https://dvajs.com/guide/getting-started.html#%E5%AE%9A%E4%B9%89-model https://v2.umijs.org/zh/guide/with-dva.html#model-%E6%B3%A8%E5%86%8Chttps://v2.umijs.org/zh/guide/with-dva.html#%E7%89%B9%E6%80%A7 |
5
hesetiema 2023-09-01 17:44:07 +08:00
@dream4ever arco design? 看了下好像还不太成熟呀...,umi 其实做这种中后台项目够用了。
|
6
yafoo 2023-09-01 22:27:39 +08:00 via Android
换 node 版本试试
|
7
dream4ever 2023-09-01 23:28:38 +08:00
@hesetiema umi 总感觉有些重,用起来也会有这样那样的小问题,可能和我不投缘吧,哈哈
|
9
d119 2023-09-07 15:26:09 +08:00
TMD 我就是被各种切来回版本搞服了,node 不服 npm ,npm 不服 nrm, eslint 不服 nrm ,react 不服 eslint ,卧艹
|