2017-11-06 1 views
0

Was wäre das Problem?Aktion muss ein einfaches Objekt sein. Verwenden Sie benutzerdefinierte Middleware

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

Configure Store:

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

Aktion

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

Wie Ihr Fehler eindeutig besagt: Action-Ersteller sollten einfache Objekte mit 'type'-Eigenschaft und optionaler Payload zurückgeben. Hier geben Sie eine Funktion zurück, die das Argument "Versand" verwendet. – lukaleli

Antwort

1

Sie sind es die falsche Art und Weise verwenden,

in Redux muss jede Aktion ein Objekt zurückgeben , und das ist ein Muss! also, Ihr Versand, der eine Funktion ist, sollte auf diese Weise aufgerufen werden.

Außerdem müssen Sie nur async die Funktion deklarieren, die Dispatch zurückgibt. Das Schlüsselwort async bestimmt, dass die folgende Funktion eine Zusage zurückgibt. Da Ihre erste Funktion (Menulist) die von der zweiten Funktion (Versand) zurückgegebene Zusage zurückgibt, müssen Sie sie nicht angeben.

export const menulist = ({ navigation }) => 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 }) 
    } 
    } 
} 
+0

Jetzt kein Fehler. Aber es dringt nicht in den Block ein. – Balasubramanian

+0

in den Versuch zu fangen? Ist es in Ihrem Container richtig angeschlossen? irgendwelche Fehler? – EnriqueDev

+0

Ja. Es wird gerufen. Aber nichts passiert – Balasubramanian

Verwandte Themen