2017-05-16 7 views
1

Ich habe mich gefragt, ob jemand anderes das Muster gesehen hat, eine Aktion von einem Thunk als anonymes IIFE zu versenden. Ich mache es bei einigen Thunks, aber ich war mir nicht sicher, ob es als schlechte Übung angesehen wurde oder warum es so sein würde. Für mich hilft das, die Redundanz bei der Benennung meiner Aktionsersteller zu vermeiden.Redux-Aktionen von Thunks mit IIFEs verschicken

const action => dispatch => { 
    //some async stuff 
    dispatch((()=>({type: ACTION}))()) 
} 

Dies ist im Gegensatz zu der Art, wie ich es fast überall sonst getan sehe. Obwohl ich ehrlich gesagt noch nicht viel gutes, meinungsorientiertes Material zu Action Naming und Thunk Naming und Code Separation hier gefunden habe, das mir gefallen hat.

typischer Setup:

const action => ({ 
    type: ACTION 
}) 

const thunkAction => dispatch => { 
    dispatch(action()) 
} 

der erste Weg hält Sie gerade von zwei ähnlich benannte Funktionen, die im Grunde den gleichen Zweck dienen. Ich bin überrascht, dass ich niemanden gesehen habe, der das benutzt, obwohl ich Redux wahrscheinlich nicht lange gebraucht habe. Für mich ist das einfach viel einfacher, da ich in den Fällen, in denen ich dies nutze, niemals die Aktion ohne das Thunk aufrufen würde. Aber vielleicht ist das nur eine schlechte Übung, die ich übersehe.

Weiß jemand, warum das ein schlechtes Muster wäre oder nicht?

Antwort

1

Wenn Sie die ersten bevorzugen, warum nicht nur

const action => dispatch => { 
    // some async stuff 
    dispatch({ type: ACTION }) 
} 

Sie brauchen nicht einmal eine Funktion (Aktion Konzept) für das schreiben.

Redux beschränkt Sie nicht darauf, dass Sie Action-Ersteller verwenden müssen. Sie können jederzeit ein Aktionsobjekt direkt versenden.

Aber Action-Ersteller haben einige Vorteile. Hier ist die Referenz für Sie http://blog.isquaredsoftware.com/2016/10/idiomatic-redux-why-use-action-creators/

+0

Oh, wow, das macht viel mehr Sinn! * Gesicht Palme * Danke für die Referenz. Definitiv über dachte, dass ein lol. – sasnyde2

+1

Gute Antwort, und als Autor dieses Blogposts, froh zu wissen, dass es hilft :) – markerikson

Verwandte Themen