2017-01-30 7 views
0

の内部で禁止されているこのエラーがポップアップ:国家変異は@ ngrx /ストアを使用して減速

index.js?4b23:19 State mutation is prohibited inside of reducers. 
(anonymous) @ index.js?4b23:19 
(anonymous) @ index.ts:54 
rootReducer @ index.ts:70 
_initialStateFactory @ ng2.ts?2a33:24 
AppModuleInjector.createInternal @ module.ngfactory.js:425 
NgModuleInjector.create @ ng_module_factory.js?95b1:132 
NgModuleFactory.create @ ng_module_factory.js?95b1:100 
(anonymous) @ application_ref.js?0421:340 
ZoneDelegate.invoke @ zone.js?e3a6:229 
onInvoke @ ng_zone.js?b62b:269 
ZoneDelegate.invoke @ zone.js?e3a6:228 
Zone.run @ zone.js?e3a6:113 
NgZone.run @ ng_zone.js?b62b:138 
PlatformRef_._bootstrapModuleFactoryWithZone @ application_ref.js? 0421:338 
(anonymous) @ application_ref.js?0421:389 
ZoneDelegate.invoke @ zone.js?e3a6:229 
Zone.run @ zone.js?e3a6:113 
(anonymous) @ zone.js?e3a6:509 
ZoneDelegate.invokeTask @ zone.js?e3a6:262 
Zone.runTask @ zone.js?e3a6:151 
drainMicroTaskQueue @ zone.js?e3a6:405 
ZoneTask.invoke @ zone.js?e3a6:336 
main.browser.ts:18 TypeError: Cannot set property 'actions$' of undefined 
at CatBibleEffects (catBible.effects.ts:15) 
at combination (utils.ts?b1fc:23) 
at index.js?39b4:125 
at index.js?4b23:16 
at index.ts:54 
at rootReducer (index.ts:70) 
at _initialStateFactory (ng2.ts?2a33:24) 
at AppModuleInjector.createInternal (module.ngfactory.js:425) 
at AppModuleInjector.NgModuleInjector.create (ng_module_factory.js?95b1:132) 
at NgModuleFactory.create (ng_module_factory.js?95b1:100) 
at application_ref.js?0421:340 
at ZoneDelegate.invoke (zone.js?e3a6:229) 
at Object.onInvoke (ng_zone.js?b62b:269) 
at ZoneDelegate.invoke (zone.js?e3a6:228) 
at Zone.run (zone.js?e3a6:113) 

答えて

1

このエラーは、私のエフェクトファイルや私のアクション・ファイルとは何の関係もありませんでした。私は、同様のファイルからコピーした後、レデューサー機能の名前を変更するのを忘れていました。これにより、このレデューサーへの呼び出しにも、メインルートレデューサーファイルでも間違った名前が付けられました。

2

State mutation is prohibited inside of reducersエラーはここに、このエラーの命を返しcatchngrx-store-freeze/dist/index.jsコードだ...エラーが減速からキャッチされたときに返されるようだ...

function storeFreeze(reducer) { 
    return function (state, action) { 
     if (state === void 0) { state = {}; } 
     deepFreeze(state); 
     // guard against trying to freeze null or undefined types 
     if (action.payload) { 
      deepFreeze(action.payload); 
     } 
     var nextState; 
     try { 
      nextState = reducer(state, action); 
     } 
     catch (error) { 
      console.error('State mutation is prohibited inside of reducers.'); 
      throw error; 
     } 
     deepFreeze(nextState); 
     return nextState; 
    }; 
} 
exports.storeFreeze = storeFreeze; 

したがって、あなたの誤差が本当に関連している可能性があり状態が不適切に変更された場合、またはそれはあなたの減速機への呼び出しの中でキャッチされていないエラーが伝播したということだけを意味する可能性があります。

+1

ありがとうございます。それはngrxのバグです、これを行うべきではありません、それは根本的なエラーを表示する必要があります。 – Purrell

関連する問題