我不知道為什么我不能在 React 中迭代陣列物件狀態。
我如何迭代:
{all.map(item =>
<div>
{item.anwsers.map(item_2 => <h3>{item_2.isCorrect && item_2.anwser}</h3>)}
<p>{item.question}</p>
</div>
)}
我怎么填?
useEffect(() => {
var seperate = questions[currentQuestion -1];
setAll([...all, seperate])
}, [currentQuestion])
這是所有的陣列:

我收到的錯誤訊息:

uj5u.com熱心網友回復:
?在 item 之前添加以等待 useEffect。例子:item?.anwsers.map...
uj5u.com熱心網友回復:
您可以使用filter()方法洗掉未定義的元素
{all.filter(a => a !== undefined).map(item =>
<div>
{item.anwsers.map(item_2 => item_2.isCorrect && <h3>{ item_2.anwser}</h3>)}
<p>{item.question}</p>
</div>
)}
uj5u.com熱心網友回復:
一種簡單的方法是洗掉陣列中的所有虛假元素值:
{all.filter(Boolean).map(item =>
<div>
{item.anwsers.map(item_2 => <h3>{item_2.isCorrect && item_2.anwser}</h3>)}
<p>{item.question}</p>
</div>
)}
這種方式將洗掉所有這些值:
- 空字串
- 錯誤的
- 0
- 空值
- 不明確的
注意:如果您的 Array 的元素只是陣列、物件或非虛假值,請使用此解決方案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/345883.html
標籤:反应
