升级到mobx-react@6.0.0会导致无限循环

时间:2019-05-30 06:28:37

标签: reactjs mobx mobx-react mobx-state-tree

我刚从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",

0 个答案:

没有答案