javascript - 如何将地图索引传递给由jsx元素组成的数组项?
问题描述
我有这段代码,我无法传递数组项映射的键索引。
arrayItem = [function1, function2, function3]
<div>
{arrayItem.map((item, index) => (<Box key={index}>{item}</Box>}
</div>
前任。对于功能1
const function1 = (index) => { <div> <h1> test</h1> <Button onClick((index) => console.log(index,"array number")}
当它转到function1时,我似乎无法从地图中检索索引。根据地图中控制台的索引是数字,但是当它转到函数时,它是一个className {}
. 这样做的目的是检索数组的编号,以便我可以将按钮删除并根据索引删除特定的数组。顺便说一句,arrayItems 不是静态的,所以它可以有多个功能。
谢谢您的帮助。
解决方案
如果您认为您的项目只是普通函数,您可以将index
其作为参数传递给这些函数,然后像这样调用它们
<div>
{arrayItem.map((item, index) => (<Box key={index}>{item(index)}</Box>))}
</div>
你的功能也有一些错误,你需要从中得到return
一些jsx
。你有一个错字onClick((...
。试试这个:
const function1 = (index) => {
return (
<div>
<h1> test</h1>
<Button onClick={(index) => console.log(index, "array number")}>click me</Button>
</div>
);
};
还有另一个场景,您认为您arrayItem
的数组是React Function Component
. 在这种情况下,您需要将代码更改为此并index
作为道具传递:
<div>
{arrayItem.map((FunctionComponent, index) => (<Box key={index}><FunctionComponent index={index} /></Box>))}
</div>
然后使用index
这样的:
const function1 = ({index}) => {
return (
<div>
<h1> test</h1>
<Button onClick={(index) => console.log(index, "array number")}>click me</Button>
</div>
);
};
推荐阅读
- javascript - 如何从具有不同值的两个对象返回键和值
- mysql - 如何检查一个表中的记录并插入另一个表?
- python - 如何在 PyQt5 tableWidget 的同一单元格中打印多行条目?
- r - 使用 tidyverse 和 broom 的许多回归:相同的因变量,不同的自变量
- azure-active-directory - 如何在自定义 Azure AD B2C SignUpOrSignin 策略上启用 Javascript
- java - 在运行时找不到 Jar 依赖项
- react-native - 无法使用 react-native-paper 和 @react-navigation/bottom-tabs 滚动
- list - Scala:计算具有固定窗口的列表的移动和
- c# - 试图在我的操作系统中制作一个可点击的主页按钮
- javascript - 无法访问数组中的对象 - Javascript