【发布时间】:2026-01-16 18:20:03
【问题描述】:
我想创建一个在用户单击“下一步”按钮时更改内容的向导。
我目前正在尝试使用 .map 函数,它可以工作,但是如何调整我的代码以循环遍历数组 onClick 中的每个步骤?
目前,我的代码仅显示 3 个单独的输入以及数组中的所有步骤,我想要做的是遍历每个步骤 onClick。
这是我的代码示例:
数组:
const wizardControls = {
steps: [
{
step: 1,
name: 'name1',
type: 'text',
placeholder: 'name1',
},
{
step: 2,
name: 'name2',
type: 'text',
placeholder: 'name2',
},
{
step: 3,
name: 'name3',
type: 'text',
placeholder: 'name3',
},
],
};
JSX 使用 map() 函数:
{steps.map((step, index) => (
<div key={index}>
<input
value={value}
name={step.name}
type={step.type}
placeholder={step.placeholder}
onChange={onChange}
/>
</div>
))}
我认为按钮需要一个处理函数来循环索引,但是我不确定如何使用 map() 函数来做到这一点。
如果 map() 函数不是最佳路径,我愿意接受更好的方法。
【问题讨论】:
-
如果我理解正确,您只想在用户点击下一个显示索引 1 时才开始显示索引 0,等等?这可以通过
useState来保存当前要显示的索引,然后在没有地图的情况下使用索引来呈现您想要的数据。当您单击下一步时,只需增加存储在useState中的索引。您可能需要对所选索引进行一些验证,具体取决于您打算对其进行的其他操作,以确保数组实际包含所请求的索引。 -
是的,就是这样。我在我的问题中忘记提到的是,上面的数组已经使用
useState存储了。只是无法理解如何使用 map() 和迭代 onClick。 - 感谢您的洞察力!