Обновление до mobx-react@6.0.0 вызывает бесконечный цикл - PullRequest
0 голосов
/ 30 мая 2019

Я только что обновился с mobx-react@5.4.4 до версии 6.0.0, и мое приложение полностью сломалось.Вместо запуска он занимал все больше и больше памяти, пока не вышел из строя.Что я ищу, так это совет о том, как лучше всего к нему подойти ... ни трассировка стека, ни какая-либо из проверенных мною переменных не дали мне ни малейшего намека на какую-либо часть моего кода.

Я довольно уверен, я делаю странные вещи (я довольно неопытен в реакции / мобксе и пришел из ОО), но теперь я могу это сделать.Я подозревал некоторые 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",
...