我刚从mobx-react@5.4.4
升级到版本6.0.0
,我的应用程序完全坏了。它没有启动,而是消耗了越来越多的内存,直到崩溃。我要寻找的是关于如何最好地实现它的建议... 堆栈跟踪或我检查的任何变量都没有给我代码的任何部分的提示。
我相当确定,我做的事情很奇怪(我对React / Mobx经验不足,并且来自OO),但这就是我现在可以做的。我怀疑有一些autorun
和类似的东西,但是删除它们并没有改变。我试图删除部分代码(直到没有任何错误,但错误仍然存在),但这花了太长时间。
该问题可以完全重现(并且现在可以通过降级解决)。使用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",