«не удается получить доступ к мертвому объекту» при разработке дополнения для firefox

#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) утверждения.