我使用map循环遍历一个对象数组来填充列表。我的循环似乎正在起作用,因为我生成了正确数量的列表但是我无法通过道具访问数据。好像我的所有道具都是未定义的。
路径:$('#Carousel').on('slide.bs.carousel', function (e) {
var id = e.relatedTarget.id;
switch (id) {
case "1":
// img1
break;
case "2":
// img2
break;
case "3":
// img3
break;
default:
// none
}
})
Component
路径:function CareerPosition(props) {
return (
<li>
{props.uniqueId}
{props.companyName}
{props.positionTitle}
</li>
)
}
ReactPage
答案 0 :(得分:1)
问题在于您在对象中设置键的方式:
ret = _context.Server.MapPath("/Uploads/Web");
您正在为所有密钥添加额外字“position”,删除它,否则您需要访问if (careerHistoryPositions) {
const newData = careerHistoryPositions.map((position) =>
({
'position.uniqueId': position.uniqueId || '',
'position.company': position.company || '',
'position.title': position.title || ''
}));
this.setState({
data: newData
})
}
内的值,如下所示:
map
删除位置并按如下方式编写:
position["position.company"]
然后访问map中的值,如下所示:
if (careerHistoryPositions) {
const newData = careerHistoryPositions.map((position) =>
({
'uniqueId': position.uniqueId || '',
'company': position.company || '',
'title': position.title || ''
}));
this.setState({
data: newData
})
}
答案 1 :(得分:0)
问题是,在componentWillReceiveProps中,您使用键const careerPositions = this.state.data.map((position) =>
<CareerPosition
key={position.uniqueId}
companyName={position.company}
positionTitle={position.title}
uniqueId={position.uniqueId}
/>
);
etx设置状态,但您只能将其作为position.title
试试这个
title