2017-07-30 1 views
0

Ist dieser Reduzierer in Ordnung? warum hat der Autor eine let users; verwendet, die mir unnötig erscheint. Wird das nicht 2 Benutzer in FETCH_USER_FULLFILLED Fall verursachen?unveränderbarer Reduzierer in redux

const initalState = { 
    users: [], 
    loading: false, 
    error: null, 
}; 

// REDCUER 
function usersReducer(state = initalState, action) { 
    let users; 
    switch (action.type) { 
    case 'FETCH_USER_PENDING': 
     return { ...state, loading: true }; 
    case 'FETCH_USER_FULFILLED': 
     users = action.payload.data.results; 
     return { ...state, loading: false, users }; 
    case 'FETCH_USER_REJECTED': 
     return { ...state, loading: false, error: `${action.payload.message}` }; 
    default: 
     return state; 
    } 
} 

export default usersReducer; 
+0

Benutzer ist nicht erforderlich, und ich denke, so dass die Verwendung von Vorlage ist wörtliche 'Fehler: \ $ {action.payload.message} \' ' –

Antwort

0

Der Druckminderer ist in Ordnung, und es wird nicht zwei Benutzer in FETCH_USER_FULLFILLED verursachen. Sie haben jedoch recht, es besteht keine Notwendigkeit für let users;. So wird der Code aussieht

case 'FETCH_USER_FULFILLED': 
    return { ...state, loading: false, users: action.payload.data.results }; 

Wenn das Reduktions zuerst ausgeführt, es seinen Startzustand von initalState nehmen wird, wie es der Standard ist, wenn kein param geben. So wird users leer Array am Anfang und wird auf FETCH_USER_FULLFILLED Aktion gefüllt werden

bearbeitenusers Vorteil der Immobilie value shorthand Funktion in ES6 nehmen

Verwandte Themen