2017-09-07 1 views
0

Ich benutze reagieren und redux, wie das Objekt wieder auf {} zurückgesetzt?Objekt leer machen, ohne den Zustand zu mutieren?

export default function checkInReducer(state = initialState.user, action) { 
    switch (action.type) { 
     case types.GET_USER_SUCCESS: 
      return Object.assign({}, state, { 
       ...action.user 
       }); 

     case types.RESET_CHECKIN: 
      //what should I do here? simply return {} ? 

     default: 
       return state; 
    } 
} 
+0

Haben Sie Ihre Idee versucht? Einfache Rückgabe '{}' sollte in Ordnung sein. Gibt es einen Fehler/ein Problem, wenn Sie das versuchen? –

Antwort

0

Wie gesagt Sie Ihre initialState.user ein leeres Objekt ist:

export default function checkInReducer(state = initialState.user, action) { 
switch (action.type) { 
    case types.GET_USER_SUCCESS: 
     return Object.assign({}, state, { 
      ...action.user 
      }); 

    case types.RESET_CHECKIN: 
     return initialState.user 

    default: 
      return state; 
} 
} 
0

In Ihrer Reduzierung, haben Sie Ihren Standardzustand initialState.user gesetzt.

checkInReducer(state = initialState.user, action) { 

Anstatt also Einstellung/Rückkehr {} direkt, sollten Sie Ihren Initialen Zustand auf diese Weise zurück.

case types.RESET_CHECKIN: 
return initialState.user || {} //if initialState.user is undefined then return {} 
+0

mein initialState.user ist {} –

+0

Aber Sie verwenden noch '||', um versehentliche Ausnahme zu behandeln –

Verwandte Themen