React - 为每个组件迭代计数器
React - Iterate counter for each component
就像所有事情一样,这可能非常简单。我在将道具传递给组件时无法迭代计数(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”按顺序攀登。
非常感谢任何帮助!
改用地图回调中的索引 - 不要使用 .push
,.map
用于从头开始创建新数组,不适用于 side-effects。
const cards = someData.map((_, i) =>
<SomeCard count1={i} count2={i + 1} />
)
当一个数据可以完全由另一个确定时传递两个 props 是多余的 - 考虑完全放弃 count2
,并在 SomeCard
.
中计算它
首先,counter 不应该是一个常量。 (使用 let
)
其次,您需要增加 counter 变量。当前配置不会改变 counter 的值,因此它保持不变。
counter + 1
returns 一个值到 count2
而不改变 counter!
的值
所以基本上你需要在分配给 count2
之前将值分配给 counter
counter = counter + 1
A shorthand 是 ++counter
,您可以直接将其分配给 count2.
总的来说,是这样的:
const cards = []
let counter = 0
someData.map(() => {
cards.push(<SomeCard count1={counter} count2={++counter} />)
})
就像所有事情一样,这可能非常简单。我在将道具传递给组件时无法迭代计数(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”按顺序攀登。 非常感谢任何帮助!
改用地图回调中的索引 - 不要使用 .push
,.map
用于从头开始创建新数组,不适用于 side-effects。
const cards = someData.map((_, i) =>
<SomeCard count1={i} count2={i + 1} />
)
当一个数据可以完全由另一个确定时传递两个 props 是多余的 - 考虑完全放弃 count2
,并在 SomeCard
.
首先,counter 不应该是一个常量。 (使用 let
)
其次,您需要增加 counter 变量。当前配置不会改变 counter 的值,因此它保持不变。
counter + 1
returns 一个值到 count2
而不改变 counter!
的值
所以基本上你需要在分配给 count2
counter = counter + 1
A shorthand 是 ++counter
,您可以直接将其分配给 count2.
总的来说,是这样的:
const cards = []
let counter = 0
someData.map(() => {
cards.push(<SomeCard count1={counter} count2={++counter} />)
})