#javascript #reactjs #firefox #redux #firefox-addon
Вопрос:
В настоящее время я работаю над надстройкой, которая построена поверх React и использует Redux для управления состоянием, она используется webext-redux
для синхронизации состояния между сценариями содержимого и фоновой страницей. Расширение довольно хорошо работает в Google Chrome, однако в Firefox я продолжаю сталкиваться с этой ошибкой всякий store.dispatch()
раз, когда встречается заявление.
Большинство тем, связанных с сообщением, кажутся устаревшими, и Mozilla также не имеет надлежащей документации (некоторые ссылки ведут на мертвые страницы). Я понимаю, что Mozilla пытается уничтожить все ссылки на DOM, и, следовательно, любые сильные ссылки приводят к этой ошибке. Я заметил, что он обычно выдает эту ошибку, как только всплывающее окно закрывается и теряет свой контекст, чтобы говорить. Тем не менее, фоновая страница сохраняется и должна быть запущена в любое время
Чего я, кажется, не понимаю, так это как это исправить? Я нахожусь в Firefox 94 на Ubuntu. Ниже приведены несколько трассировок стека. Спасибо вам за вашу помощь!
Uncaught (in promise) TypeError: can't access dead object Redux 7 _detectMutations _detectMutations _detectMutations detectMutations createImmutableStateInvariantMiddleware measureTime createImmutableStateInvariantMiddleware Controller Controller.ts:230 _callee$ BackgroundProcessor.ts:149 Babel 10 promise callback*run index.js:16 earlyBound index.js:55 BackgroundProcessor BackgroundProcessor.ts:79
can't access dead object background.bundle.js line 11686 gt; eval:196 holdMessage ExtensionChild.jsm:239 sendPortMessage ExtensionChild.jsm:293 sendPortMessage self-hosted:1175 Redux 3 apply self-hosted:2715 applySafeWithoutClone ExtensionCommon.jsm:623 asyncWithoutClone ExtensionCommon.jsm:2409
Redux 7 _detectMutations _detectMutations _detectMutations detectMutations createImmutableStateInvariantMiddleware measureTime createImmutableStateInvariantMiddleware Controller Controller.ts:340 BackgroundProcessor BackgroundProcessor.ts:299
Строки в in Controller
-это ваши типичные store.dispatch(action)
утверждения.