Des actions asynchrones dans Redux

J'ai une Réagir Application, j'ai besoin de faire un appel ajax (pour apprendre) à un service en ligne (asynchrone) avec Redux.

C'est mon magasin:

import { createStore, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import duedates from './reducers/duedates'


export default applyMiddleware(thunk)(createStore)(duedates);

C'est les actions:

import rest from '../Utils/rest';

export function getDueDatesOptimistic(dueDates){
    console.log("FINISH FETCH");
    console.log(dueDates);
    return {
        type: 'getDueDate',
        dueDates
    }
}

export function waiting() {
    console.log("IN WAIT");
    return {
        type: 'waiting'
    }
}


function fetchDueDates() {
    console.log("IN FETCH");
    return rest({method: 'GET', path: '/api/dueDates'});
}

export function getDueDates(dispatch) {
    console.log("IN ACTION");
    return fetchDueDates().done(
        dueDates => dispatch(getDueDatesOptimistic(dueDates.entity._embedded.dueDates))
    )
}

Et c'est le réducteur:

export default (state = {}, action) => {
  switch(action.type) {
    case 'getDueDate':
        console.log("IN REDUCER")

        return state.dueDates = action.dueDates;
    default:
        return state
  }
}

Je n'obtiens pas ce que je fais mal. L'action est appelé parfaitement à partir du composant. Mais ensuite, j'obtiens cette erreur:

Erreur: les Actions doivent être simples objets. Utilisation personnalisée du middleware pour des actions asynchrones.

Je suppose que je suis en utilisant mal la réaction de thunk middleware.
Ce que je fais mal?

MODIFIER

Maintenant l'action de l'appelant pour le réducteur, mais le réducteur, après un changement d'état, n'est pas de ré-exécuter la méthode render

    case 'getDueDate':
        console.log("IN REDUCER")

        return state.dueDates = action.dueDates;
InformationsquelleAutor Pablo | 2016-02-20