我的 .map 函式出現錯誤。我相信問題比這更大,因為有時我的 fetch 會回傳為未定義。我一直在尋找解決方案,但沒有找到任何給我解決方案的東西。
Props - 是具有用戶 ID 的登錄用戶物件
discBag 有時作為陣列控制臺,但也會控制臺為未定義。這就是我認為我的問題正在發生的地方。我已經研究過組件安裝,但我對 class 和 super() 語法感到困惑。
這是我與兩個console.logs相處的錯誤
我是 Web 開發的新手,這是我的第一個堆疊溢位問題。非常感謝任何解決方案或解決方案的指導!
function DiscBag(props) {
const [loading, setLoading] = useState(true);
const [discBag, setDiscBag] = useState([]);
const userID = props.user.user.id;
console.log(userID)
console.log(discBag)
const getDiscs = async () => {
try {
const response = await fetch(`/users/${userID}`)
const data = await response.json()
setLoading(false)
setDiscBag(data.discBag)
} catch (error) {
console.log(error)
}
};
useEffect(() => {
getDiscs();
}, []);
if (loading) {
return <div> ....loading bro</div>;
}
return (
<div className="child">
<p>not loading</p>
{discBag.map((index, discs) => (
<div className="discs" key={index}>
{discs}
</div>
))}
</div>
);
}
uj5u.com熱心網友回復:
根據您的描述,似乎有時對您的服務器的呼叫沒有回傳data.discBag值,這導致discBag狀態為空(并且該map函式只能在陣列上運行,這是該問題的修復方法:
{discBag?.map((discs, index) => (
uj5u.com熱心網友回復:
你可以試試{discBag.map((discs, index) => ... 嗎?第一個是元素,第二個是索引,如下所示;
array.map((currentElement, index) => { something... })
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/516624.html
