0

AngularJS v1.6のRedux機能に「redux-observable」を使用しています。 次のコードは認識されないエピックここRedux Epic Angular JSでのサービスの注入

export const getAllBidsAPI : any = (action$: ActionsObservable<any>, store: any, { customerService = CustomerService }) => 
     action$.ofType(GET_ALL_BID) 
     .mergeMap((action : any) => 
      Observable.fromPromise(customerService.getCustomers()) 
      .map((res: any) => ({type : GET_ALL_BID_SUCCESS , payload : res.data.bid})) 
     ); 

たCustomerService用です。私はそれが注入されていないと思う。

const rootEpic = combineEpics(
    getAllBidsAPI 
); 

const rootReducer = combineReducers({ 
    bidReducer 
}); 

const epicMiddleware = createEpicMiddleware(rootEpic, { 
    dependencies : {CustomerService} 
}); 

export const store = createStore(
    rootReducer, 
    applyMiddleware(epicMiddleware) 
); 

ここでは、CustomerServiceをEpicの依存関係として追加します。しかし、私はエラーが発生します。

Reduxの-観測可能であることundefined依存関係のための最も一般的な理由は、それが実際にundefinedとして提供されることである未定義

+0

どのようにその依存関係を解決しますか? – Hitmands

+0

@Hitmands依存関係を解決することはどういう意味ですか? –

+1

AngularJS(1. *)には '$ injector'オブジェクトがあります。つまり、依存関係を登録し、フレームワーク(コンポーネント、サービス、コントローラなど)内で許可されている場合にのみ使用する必要があります。では、 'customerService'をどのように小文字にするのですか? 'dependencies:{CustomerService}'を大文字にしました... – Hitmands

答えて

0

のプロパティ「getCustomers」を読み取ることができません。通常はインポート/要求が正しくないためです。 CustomerServiceを正しくインポートしていることと、デバッガをcreateEpicMiddlewareに渡してundefinedであることを確認するファイルにデバッガを一時停止することを再度確認します。

私が見たもう一つは、依存関係注入をサポートしていない古いバージョンのredux-observableを使用していたことです。 しかし redux-observableは、叙事詩の3番目の引数として、デフォルトでを提供していないので、上記の最初の提案だと確信しています。したがって、あなたの場合、redux-observableが責任を負うことになっていた場合は、実際にはCannot read property 'customerService' of undefinedが返されます。なぜなら、3番目の引数は何もなく、あなたが提供したオブジェクトだからです。

+0

ねえANKIT。それは問題でしたか? – jayphelps

関連する問題