reduxとredux-thunkでアプリを構築できた人はいますか? 私の場合、それはで動作してionic serve
いますが、で失敗していnpm run build
ます。デバイス用にビルドできません。ブラウザでのみ機能します。
これらの NGC エラーが表示されます
[19:25:46] ngc: エラー: シンボル値を静的に解決中にエラーが発生しました。関数 'createStore' を呼び出しています。関数呼び出しはサポートされていません。関数またはラムダをエクスポートされた関数への参照に置き換え、c:/Ionic/ionic-redux-test/.tmp/app/app.module.ts のシンボル AppModule を解決し、c:/Ionic/ionic のシンボル AppModule を解決することを検討してください。 -redux-test/.tmp/app/app.module.ts の simpleInContext (c:\Ionic\ionic-redux-test\node_modules\@angular\compiler-cli\src\static_reflector.js:469:23) の StaticReflector .simplify (c:\Ionic\ionic-redux-test\node_modules\@angular\compiler-cli\src\static_reflector.js:472:22) StaticReflector.annotations (c:\Ionic\ionic-redux-test\node_modules) で\@angular\compiler-cli\src\static_reflector.js:61:36) _loop_1 (c:
[19:25:46] ngc: コンパイルに失敗しました
[19:25:46] ngc が失敗しました: NGC でエラーが発生しました [19:25:46] エラー: NGC で ChildProcess でエラーが発生しました。(c:\Ionic\ionic-redux-test\node_modules\@ionic\app-scripts\dist\ngc.js:62:24) emitTwo (events.js:87:13) で ChildProcess.emit (events.js) :172:7) ChildProcess.cp.emit (c:\Ionic\ionic-redux-test\node_modules\cross-spawn\lib\enoent.js:40:29) で MaybeClose (internal/child_process.js:821: 16) Process.ChildProcess._handle.onexit (internal/child_process.js:211:5) で、イオン アプリケーション スクリプト「ビルド」の実行中にエラーが発生しました: エラー: NGC でエラーが発生しました
これらは、@NgModuleの直前に app.module.tsに加えた変更です
//Redux - ReduxThunk - rootReducer
import { createStore, applyMiddleware } from 'redux';
import ReduxThunk from 'redux-thunk';
import { rootReducer } from '../modules/rootReducer';
const appStore = createStore(
rootReducer,
applyMiddleware(ReduxThunk)
);
そして、これを providers 配列に追加します:
providers: [
{ provide: 'AppStore', useValue: appStore }
]
編集: app.module.ts でこれらの変更を行い、const appStoreをexport functionに変更した後。
export function appStore(): any {
return createStore(
rootReducer,
applyMiddleware(ReduxThunk)
);
};
プロジェクトをコンパイルして実行することはできますが、home.ts でこのエラーが発生します。
this.appStore.getState は関数ではありません TypeError:
this.appStore.getState は関数ではありません
これは私がhome.tsに持っているものです
export class HomePage {
constructor(
@Inject('AppStore') public appStore: any,
) { }
testRedux(){
this.appStore.dispatch((dispatch)=> {
dispatch({type: 'INCREMENT'});});
console.log(this.appStore.getState().increment.counter);
}
}
これに取り組む方法についてのアイデアはありますか?