2017-11-06 6 views
0

何が問題でしょうか?アクションはプレーンオブジェクトでなければなりません。カスタムミドルウェアを使用する

Uncaught Error: Actions must be plain objects. Use custom middleware for async actions.

設定ストア:

export default configureStore =() => { 
    let store = compose(applyMiddleware(ReduxThunk))(createStore)(reducers); 
    return store; 
} 

アクションすべてのアクションは、オブジェクトを返す必要がありReduxの中であなたはそれを間違った方法を使用している

export const menulist = async ({ navigation }) => { 
    return async dispatch => { 
    try { 
     dispatch({ type: types.MENULIST_REQUEST_START }) 
     let response = await menuListByCategories(); 
     dispatch({ type: types.MENULIST_SUCCESS }) 
    } catch (error) { 
     dispatch({ type: types.MENULIST_FAILED }) 
    } 
    } 
} 
+1

エラーが明確に記載されています:アクション作成者は、 'type'プロパティとオプションのペイロードを持つプレーンオブジェクトを返す必要があります。ここでは、 'dispatch'引数をとる関数を返しています。 – lukaleli

答えて

1

、これは必須です! したがって、関数であるディスパッチをこのように呼び出す必要があります。

さらに、ディスパッチを返す関数asyncを宣言する必要があります。 asyncキーワードは、次の関数が約束を返すことを決定します。あなたの最初の関数(menulist)が2番目の関数(ディスパッチ1)によって返された約束を返しているので、それを指定する必要はありません。

+0

エラーはありません。しかし、それはブロックの中に入っていません。試しにキャッチ内に – Balasubramanian

+0

?コンテナに正しく接続されていますか?任意のエラー? – EnriqueDev

+0

はい。その呼び寄せ。しかし、何も起こっていない – Balasubramanian

関連する問題

 関連する問題