2017-11-21 3 views
2

Ich mache eine POST-Anfrage nach Abschluss Ich möchte den Benutzer auf eine neue Seite mit einem Rückruf umleiten. Unten ist mein onSubmit-Handler.Verwenden von Rückrufen mit Aktionserstellern

Hier ist meine Aktion Schöpfer.

export function createPost(values, callback) { 
    const request = axios.post(`/api/create_post`, values) 
     .then(() => callback()); 

    return { 
     type: CREATE_POST, 
     payload: request 
    }; 
} 

Ich erwartete den Rückruf mich auf eine andere Seite umgeleitet werden, aber es das nicht tun. Die Daten werden zwar an die Datenbank gesendet, der Rückruf wird jedoch nicht ausgelöst.

+0

Irgendwelche Fehler in der Konsole? – Timo

+0

nein, nur das Protokoll 'vor der Aktion'. Korrektur. Nach einiger Zeit taucht das auf. POST http: // localhost: 3000/api/create_listing net :: ERR_EMPTY_RESPONSE – Alison

+0

und dies. createError.js: 16 Uncaught (in Aussicht) Fehler: Netzwerkfehler – Alison

Antwort

1

Gemäß den Fehlermeldungen, die Sie in den Kommentaren hinzugefügt haben, schlägt Ihr HTTP-Aufruf fehl, und das Versprechen wird abgelehnt. Daher wird der .then()-Handler nie aufgerufen.

Fügen Sie Fehlerbehandlung über einen .catch()-Handler hinzu, und Sie sollten in der Lage sein, das Anrufergebnis (fehlgeschlagen) zu verarbeiten.

+0

Danke! ... also habe ich keinen res.send in meinen express API-Endpunkt aufgenommen. Sobald ich das eingefügt habe, hat der Rückruf ausgelöst und meine Seite umgeleitet. – Alison

Verwandte Themen