我刚刚从一个版本升级mobx-react@5.4.4
到另一个版本6.0.0
,我的应用程序完全崩溃了。它没有启动,而是消耗了越来越多的内存,直到崩溃。我正在寻找的是关于如何最好地处理它的建议......堆栈跟踪和我检查的任何变量都没有给我任何提示我的代码的任何部分。
我很确定,我在做奇怪的事情(我在 react/mobx 方面缺乏经验并且来自 OO),但这就是我现在可以做的。我怀疑一些autorun
s 和类似的东西,但删除它们并没有改变。我试图删除部分代码(直到除了错误之外什么都没有),但这需要太长时间。
这个问题是完全可重现的(现在通过降级解决)。使用5.4.4
,一切运行顺利(性能良好,没有错误,没有警告,...)。
升级时,我遇到了“disposeOnUnmount 仅支持 React.Component 或 React.PureComponent 的直接子类”的问题,但这很容易解决。可能有类似的东西(一个现在实现方式不同的实用程序,我正在以一种奇怪的方式使用它),但我试图删除所有可疑的东西但没有成功。
这是堆栈跟踪:
performUnitOfWork (react-dom.development.js:20278)
workLoop (react-dom.development.js:20326)
renderRoot (react-dom.development.js:20406)
performWorkOnRoot (react-dom.development.js:21363)
performWork (react-dom.development.js:21273)
performSyncWork (react-dom.development.js:21247)
requestWork (react-dom.development.js:21102)
scheduleWork (react-dom.development.js:20915)
scheduleRootUpdate (react-dom.development.js:21610)
updateContainerAtExpirationTime (react-dom.development.js:21636)
updateContainer (react-dom.development.js:21704)
push../node_modules/react-dom/cjs/react-dom.development.js.ReactRoot.render (react-dom.development.js:22017)
(anonymous) (react-dom.development.js:22169)
unbatchedUpdates (react-dom.development.js:21492)
legacyRenderSubtreeIntoContainer (react-dom.development.js:22165)
render (react-dom.development.js:22240)
./src/index.tsx (index.tsx:15)
__webpack_require__ (bootstrap:781)
fn (bootstrap:149)
0 (ReoctoStore.js:62)
__webpack_require__ (bootstrap:781)
checkDeferredModules (bootstrap:45)
webpackJsonpCallback (bootstrap:32)
(anonymous) (main.chunk.js:1)
这是package.json
(AFAIK一切都在“最新”)的可能相关部分:
"mobx": "^6.0.0",
"mobx-decorators": "^5.0.3",
"mobx-react": "^5.4.4",
"mobx-state-tree": "^3.14.0",
"react": "^16.8.6",
"react-app-rewire-mobx": "^1.0.9",
"react-app-rewired": "^2.1.3",
"react-dom": "^16.8.6",
"react-scripts": "^3.0.1",
"@material-ui/core": "^4.0.1",