就像所有事情一樣,這可能非常簡單。我在迭代將道具傳遞給組件的計數(1、2、3、4 等最多 50)時遇到問題:
const cards = []
const counter = 0
someData.map(() => {
cards.push(<SomeCard count1={counter} count2={counter 1} />)
})
它應該代表這樣的東西(迭代到 50):
<SomeCard count1="0" count2="1" />
<SomeCard count1="1" count2="2" />
<SomeCard count1="2" count2="3" />
<SomeCard count1="3" count2="4" />
<SomeCard count1="4" count2="5" />
IE 我想迭代 "SomeCard" 50 次,每次 "count1" 和 "count2" 依次攀升。非常感謝任何幫助!
uj5u.com熱心網友回復:
首先,計數器不應該是一個常數。(使用let)
其次,您需要增加計數器變數。當前配置不會更改計數器的值,因此它保持不變。
counter 1回傳一個值count2而不改變計數器的值!
所以基本上你需要先將值分配給計數器,然后再分配給count2
counter = counter 1
對此的簡寫是 counter您直接分配給count2。
所以總的來說,是這樣的:
const cards = []
let counter = 0
someData.map(() => {
cards.push(<SomeCard count1={counter} count2={ counter} />)
})
uj5u.com熱心網友回復:
在地圖回呼中使用索引 - 并且不要使用.push,.map是為了從頭開始創建一個新陣列,而不是為了副作用。
const cards = someData.map((_, i) =>
<SomeCard count1={i} count2={i 1} />
)
但是,當一個資料可以完全確定另一個資料時傳遞兩個 props 是多余的 - 考慮count2完全放棄,并在內部計算它SomeCard。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/450509.html
上一篇:從Express服務器提供index.html時出現問題,但在我單獨運行客戶端時沒有
下一篇:使用打字稿描述功能道具
