2017-05-16 6 views
0

Ich habe ein Paar Redux-Aktionen, die ich absetzen möchte, wenn eine Taste gedrückt wird. Einer von ihnen sollte eine Liste von Dienstleistungen und Minderer Logik darauf ausführen, und der andere sollte nur eine gewisse Logik in der Reduktions auslösen:Redux-Thunk nicht Aktionen zu verschicken

function retrieveServices(services) { 
    return { 
     type: RETRIEVE_SERVICES, 
     services, 
    }; 
} 

function toggleSubmitState() { 
    return { 
     type: TOGGLE_SUBMIT_STATE, 
    }; 
} 

Ich habe die folgende Aktion, die ich angenommen würde den Trick tun:

export function submitGameplan(services) { 
    return (dispatch => { 
     dispatch(toggleSubmitState()); 
     dispatch(retrieveServices(services)); 
    }; 
} 

Dies ist, wie ich es in meiner Komponente nennen:

const { submitter, dispatch, services } = this.props; 

    const submitWithServices =() => { 
     dispatch(submitter(services)); 
    }; 

    return (
     <div> 

     <button onClick={submitWithServices}> 
      <div>Submit</div> 
     </button> 

     </div> 
    ); 

wo die submitter Aktion in submitGameplan ist geleitet wird.

Obwohl Redux-Thunk scheint die Aktion abholen und feuern es (ich bekomme console.log-Ausgabe), es ist nicht die Aktionen zu versenden.

Abgesehen von der (wahrscheinlich) Möglichkeit, dass ich die Funktion in meinem Handeln falsch nennen, vielleicht gibt es einige Probleme mit der Tatsache, dass ich diese App-Level-Komponente in meinem Haupt getan habe:

const boundActions = bindActionCreators(actions, dispatch); 

und dann alle Aktionen wie boundActions übergeben, dh meine Komponente würde boundActions.submitGameplan bekommen.

Dennoch bin ich nicht sicher, warum diese Aktion keine der beiden Aktionen wie beschrieben absetzen würde.

+0

Sind Sie eigentlich die Redux-Thunk Middleware? Wie sieht Ihre Store-Initialisierung aus? Was meinen Sie, dass Sie console.log Ausgabe bekommen? Von redux-logger? – lohfu

Antwort

0

Stellt sich heraus, dass dies nach einer Neukompilierung funktionierte, keine Ahnung, warum es vorher nicht funktioniert hat.

Verwandte Themen