试着在这里保持简单。
我有一些数据。它包含我们称之为items
的对象列表。我循环遍历items
,并将各种属性传递给组件,如下所示:
render: function(){
var itemList = [];
items.forEach(function(item){
itemList.push(<Component name={item.name} tags={item.tags} />)
})
return(
<ul id="item-list">
{itemList}
</ul>
)
}
所以这里的问题是item.tags
是一个数组。在我的组件中,我只是做一些简单的事情,比如显示名称,然后遍历标签来显示它们:
render: function(){
var tags = [];
this.props.tags.forEach(function(tag){
tags.push( <li>{tag}</li> />)
})
return(
<li>
<h1>{this.props.name}</h1>
<ul>
{tags}
</ul>
</li>
)
}
在组件内部,标签未定义。
我做什么/我做错了,因为我对React很新。谢谢!
答案 0 :(得分:3)
可能需要更多代码才能提供帮助。
如果您的Component
课程被授予tags
道具,this.props.tags
将永远是对它的引用。
您是否有可能做一些有趣的事情,例如cloneWithProps
或使用动态<Component/>
课程?
您可以尝试将item
作为prop
传入,并拉出组件中的代码。
<Component item={item}/>
这样可以让您更轻松地了解tags
无法使用的原因。