2017-12-18 18 views
0

を無効にするとき、私は、このオブジェクト配列内のIDを渡ししようとしています:ノーリターンアサイン -

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

私は、これは本当に私が(しゃれが意図した)

私を悩ませているeslintエラーno-return-assignを取得しておきます試しました:

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() 
}); 

なし

私はeslintを無効にする必要がありますか?回避策はありますか?

+0

まあ

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

またはさらに簡単に書きます。 id = v4()})//戻り値がなく、() 'の代わりに{}を使うことに注意してください。 – CRice

+0

あなたには '関数のパラメータの代入 'がありますchild' no param reassign' – user2456977

+1

これは関数のパラメータの変更について不平を言っているeslintの規則です。これを無効にすることもできますし、mapを使って配列の新しいコピーを作成する必要があります。例えば、 'children = children.map(child => {return {... child、id:v4()} ;}) ' – CRice

答えて

0

あなたのコールバック関数からは何も返されません。 `children.forEach(子=> {子:ちょうどあなたがしようと、例えば、eslintルールを無効にすることができ、または割り当てを返さない、

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

最初の例は次のとおりです:'関数パラメータのプロパティへの代入 '子' no-param-reassign' 第2の例は素晴らしいです – user2456977