通过React组件传递数组

时间:2015-09-01 04:16:27

标签: javascript reactjs react-jsx

试着在这里保持简单。

我有一些数据。它包含我们称之为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很新。谢谢!

1 个答案:

答案 0 :(得分:3)

可能需要更多代码才能提供帮助。

如果您的Component课程被授予tags道具,this.props.tags将永远是对它的引用。

您是否有可能做一些有趣的事情,例如cloneWithProps或使用动态<Component/>课程?

您可以尝试将item作为prop传入,并拉出组件中的代码。

<Component item={item}/>

这样可以让您更轻松地了解tags无法使用的原因。