2017-09-15 1 views
2

was genau bedeutet diese drei Punkte und warum brauche ich sie?Eckig was bedeutet drei Punkte in @NGRX

export function leadReducer(state: Lead[]= [], action: Action { 
    switch(action.type){ 
     case ADD_LEAD: 
      return [...state, action.payload]; 
     case REMOVE_LEAD: 
      return state.filter(lead => lead.id !== action.payload.id) 
} 
} 

Antwort

5

Die drei Punkte werden als spread operator von Maschinenschrift bekannt ist (ebenfalls von ES7).

Der Spread-Operator gibt alle Elemente eines Arrays zurück. Wie würden Sie jedes Element separat schreiben:

func(...args); 

dazu:

let myArr = [1, 2, 3]; 
return [1, 2, 3]; 
//is the same as: 
return [...myArr]; 

Dies ist meist nur syntaktischer Zucker, wie es dieses kompiliert

func.apply(null, args); 

In Ihrem Fall wird diese kompiliert dies:

return [...state, action.payload]; 
//gets compiled to this: 
return state.concat([action.payload]); 
+2

Es ist ES7 Ursache es arbeitet auf Objekt nicht Array. – alexKhymenko

+0

@alexKhymenko Danke für die Nachricht :) – Wernerson

1

Die ... (spread operator) arbeitet, indem jeder Wert aus dem Index zu indizieren 0 Rückkehr length-1:

Verwandte Themen