Issue
What do these three dots mean exactly, and why do I need them?
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 )
}
}
Solution
The three dots are known as the spread operator from Typescript (also from ES7).
The spread operator return all elements of an array. Like you would write each element separately:
let myArr = [1, 2, 3];
return [1, 2, 3];
//is the same as:
return [...myArr];
This is mostly just syntactic sugar as it compiles this:
func(...args);
to this:
func.apply(null, args);
In your case this gets compiled to this:
return [...state, action.payload];
//gets compiled to this:
return state.concat([action.payload]);
Answered By - Spitzbueb
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.