2016-03-23 11 views
0

Ich möchte eine Antwort erhalten, die vom Post an die Nutzlast zurückgegeben wird. Wie sende ich das Ergebnis, das an Aktion zurückgegeben wird. Wie kann ich das tun?So senden Sie eine Antwort mit react, redux, axios zu Aktion

import axios from 'axios'; 
import * as types from './actionTypes'; 

const ROOT_URL = `http://localhost:8000`; 

export function addPost(title){ 
    const url = `${ROOT_URL}/api/v1/post/`; 
    var request; 

    axios.post(url, { 
     title: title, 
    }).then(function (response) { 
     request = response; 
    }) 
    .catch(function (response) { 
     request = response; 
    }); 

    console.log(request); 

    return { 
     type:types.ADD_POST, 
     payload:request 
    } 
} 
+0

Super hilfreich: http://redux.js.org/docs/advanced/AsyncActions.html – lux

Antwort

1

Eine Möglichkeit, einen separaten Service zu haben wäre, die die entsprechende Aktion aufruft:

So etwas wie

export function addPost(title){ 
    return { 
     type:types.ADD_POST, 
     payload:request 
    } 
} 

export function addPostService(title){ 
    const url = `${ROOT_URL}/api/v1/post/`; 
    var request; 

    axios.post(url, { 
     title: title, 
    }).then(function (response) { 
     dispatch(addPost(response.body)) 
    }) 
    .catch(function (response) { 
     request = response; 
    }); 
} 

Wenn Sie eine erweiterte Lösung wollen Besuche redux-Thunk: https://github.com/gaearon/redux-thunk

+0

ok. Vielen Dank für deine Hilfe – onerciller

Verwandte Themen