Array.prototype.map() はアロー関数からの戻り値を期待します:修正
Javascript でエラー プロンプト「Array.prototype.map() Expects a return value from Arrow Function」メッセージがポップアップ表示される場合があります。この問題に直面するシナリオはいくつかあり、この問題を回避する方法も複数あります。一般に、「Array.prototype.map()」関数を使用しているときに、コードの実行中に何も (null) が返されない場合。そうしないと、フィルター メソッドに関する前の手順で間違いを犯した場合にも、同じエラー メッセージが表示される可能性があります。
修正 – 1 かっこを置き換えます
通常、コード内に書かれた括弧はエラーを引き起こしません。ただし、この場合は、コード内で () の代わりに {} を使用します。
例– このコードのスニペット –
{
If (Object.keys(t.pr.part).map((par) => {
if(t.pr.part[par].user_identifiant === getUrlParams(window.location.hash).user_identifiant)
this.setState({
par:t.pr.part[パーツ].id_user
})
})
}
コードのこの部分では、「アロー関数で値を返すことが期待されています」というメッセージが表示されます。これを修正するには、コード内でこの「 ({」を「(( 」に変更するだけです。
コードスニペットは次のようになります –
Object.keys(t.pr.part).map((par) => {
if(t.pr.part[par].user_identifiant === getUrlParams(window.location.hash).user_identifiant)
this.setState((
par:t.pr.part[パーツ].id_user
))
)}
))
このようにして、コードのトラブルシューティングを行うことができます。
解決策 2 – Array.map の代わりに ForEach を使用する
Array.map 関数を使用する代わりに、コード内で Array.ForEach 関数を使用すると、同じ結果が得られます。
コードの特定の関数が値を返す必要がない場合は、map メソッドを使用する代わりに Foreach 関数を使用できます。
例–
ListService?.map((service, j) => {
戻る (
<メインサービス key={service.id} {…{service, num: j }} />
)
})
メインのマップ関数を置き換えて、次のようにコードを変更できます。
ListService?.forEach((item) => {
csvData.push({
「名前」: アイテム?.名前、
「作品」: item?.desc,
})
})
こうすることで、Array.map 関数を完全にバイパスし、戻り値メッセージの取得を回避できます。
解決策 3 – null 値を返す
Array.map 関数が値を反復できない場合は、コードの最後に else 条件を含めて null 値を返すようにする必要があります。
これはとても簡単だ。これを含めるだけで –
else {
null を返す:
}
}
括弧に注意してコードを実行してください。次に、コードをコンパイルして実行し、テストします。
コードが失敗するたびに、「Array.prototype.map() Expects a return value from Arrow Function」というエラー メッセージではなく、少なくとも null 値が反復されます。
解決策 4 – フィルター コードを使用する
この問題に対処する別の方法もあります。一部のパラメーターに基づいて値を分離する必要がある場合は、 Array.prototype.map() の代わりに「ArrayPrototype.filter() 」を使用します。
このコードの主な構文は次のとおりです。
let newArray = array.filter(callback(element[, index[, array]])[, thisArg])
これは、指定された関数の条件を満たすデータのセット全体をフィルターで除外できる組み込みメソッドです。
これらは、JavaScript の戻り値メッセージのトラブルシューティングを行う方法です。
コメントを残す