umijs max React 的代码打包多份再运行react找不到问题

作者: 刘满 分类: umijs 发布时间: 2022-10-18 13:41

mf-dep____vendor.80125e40.js:263462 Warning: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:

  1. You might have mismatching versions of React and the renderer (such as React DOM)
  2. You might be breaking the Rules of Hooks
  3. You might have more than one copy of React in the same app
    See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.

Uncaught TypeError: Cannot read properties of null (reading ‘useContext’)

根因在某些复杂场景下,React 的代码被打包多份,再运行时产出了多个 React 实例。解法通过 Module Feratation 的 shared 配置来避免多实例的出现。 如果有其他依赖出现多实例的问题,可以通过类似的方式解决。

在config/config.ts文件里加mfsu的配置

mfsu: {
  shared: {
    react: {
      singleton: true,
    },
  },
},

发表回复

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据