我有一个有子组件的组件,我想用不同的ID呈现这些子组件。它们正在从存储中获取数据。问题是它们被呈现了,但具有相同的项。如何解决这个问题?
多图像组件
const MultiImages: () => JSX.Element = () => {
const values = ['500', '406', '614'];
return (
<div>
{values.map((val, index) => {
return <OneImage key={index} projectID={val} />;
})}
</div>
);
};
export default MultiImages;
一个映像组件
const OneImage: () => JSX.Element = ({ projectID }) => {
const projectData = useProjectDataStore();
const { getProject } = useAction();
useEffect(() => {
getProject(projectID ?? '');
}, []);
return (
<>
<div>
<img
src={projectData.picture}
}
/>
<div>
<a>
{projectData.projectName}
</a>
</div>
</div>
</>
);
};
export default OneImage;
1条答案
按热度按时间slsn1g291#
在本例中,组件
OneImage
将返回return语句中的内容:元素周围的标签
<></>
是一个React.片段,没有键。这就是你得到这个错误的原因。因为你已经有一个div标签 Package 了你的元素,你可以这样做:您也可以将键更改为
Math.floor(Math.random() * 9999)
。请注意,传递属性key={index}
是不必要的,并且不建议将索引用作React列表中的键。