2017-12-18 7 views
0

I-IDs in diesem Objekt Array übergeben bin versucht:no-return-assign - wenn deaktivieren

const children = [{name: Jack, age: 8}, {name: Joe, age: 6}]; 
children.forEach((child) => (child.id = v4())); 

Ich erhalte eslint Fehler no-return-assign das nervt mich wirklich (Wortspiel beabsichtigt)

I versucht:

children.forEach(child => child.id = v4()); 

children.forEach((child) => (child.id = v4())); 

children.forEach(child => (child.id = v4())); 

children.forEach((child) => { 
    return child.id = v4() 
}); 

Keine Arbeit.

Sollte ich eslint deaktivieren? Gibt es eine Problemumgehung?

+0

Nun können Sie die eslint Regel deaktivieren, oder Sie einen Auftrag nicht zurück, zum Beispiel versuchen: 'children.forEach (child => {Kind. id = v4()}) // Beachten Sie die fehlende Rückgabe und die Verwendung von {} anstelle von() '. – CRice

+0

Mit Ihrem bekam ich 'Zuordnung zu Eigenschaft des Funktionsparameters 'Kind' keine Param Umwidmung ' – user2456977

+1

Dies ist eine Eslint-Regel, die sich über die Mutation der Funktion Parameter beschwert. Sie können dies ausschalten oder Sie müssen stattdessen map verwenden und eine neue Kopie des Arrays erstellen, zB: 'children = children.map (child => {return {... child, id: v4()} ;}) ' – CRice

Antwort

0

Nun geben Sie nichts von Ihrer Rückruffunktion zurück. Schreiben Sie einfach

children.forEach(child => { 
    child.id = v4(); 
}); 

oder noch einfacher

for (const child of children) { 
    child.id = v4(); 
} 
+0

Das erste Beispiel bekam:' Zuordnung zu Eigenschaft des Funktionsparameters 'Kind' no-param-reassign' Zweites Beispiel ist großartig – user2456977

Verwandte Themen