我有這個 array.map() 箭頭函式并有以下錯誤:“Array.prototype.map() 期望在箭頭函式陣列回呼回傳的末尾回傳一個值”
這是我的代碼:
{productList.map((val) => {
const category = val.CategoryName;
// const quantity = val.ProductQuantity
if (category === "MotorcycleParts") {
if (val.ProductQuantity !== 0) {
return (
<div>
<div>
<div class="buyNowBtnDiv">
{localStorage.getItem("username") === "" ||
localStorage.length === 0 ? (
<div id="buyAddBtn">
</div>
) : (
<div id="buyAddBtn">
</div>
)}
</div>
</div>
</div>
);
}
}
})}
我已經閱讀了有關該錯誤的資訊,我發現它與需要回傳值有關,但我確實有這個錯誤?
帶有修復的代碼示例會有所幫助,我認為這很簡單。
uj5u.com熱心網友回復:
map 必須為每個專案回傳一個值。
如果你想做一些過濾,你應該考慮使用Array.prototype.filter()before,這樣你就可以洗掉if你地圖中的s。
代碼也更容易閱讀。
{productList.filter(val => val.CategoryName === "MotorcycleParts" && val.ProductQuantity !== 0)
.map((val) => {
return (
<div>
<div>
<div class="buyNowBtnDiv">
{localStorage.getItem("username") === "" ||
localStorage.length === 0 ? (
<div id="buyAddBtn">
</div>
) : (
<div id="buyAddBtn">
</div>
)}
</div>
</div>
</div>
);
})}
uj5u.com熱心網友回復:
當列出的條件不匹配時,您可以只回傳 null:
{productList.map((val) => {
const category = val.CategoryName;
// const quantity = val.ProductQuantity
if (category === "MotorcycleParts") {
if (val.ProductQuantity !== 0) {
return (
<div>
<div>
<div class="buyNowBtnDiv">
{localStorage.getItem("username") === "" ||
localStorage.length === 0 ? (
<div id="buyAddBtn">
</div>
) : (
<div id="buyAddBtn">
</div>
)}
</div>
</div>
</div>
);
}
return null;
}
})}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/354534.html
標籤:javascript 反应
上一篇:矩陣方程的JS正則運算式
