对于包含React中渲染内部链接的循环

时间:2017-07-21 08:45:42

标签: vb.net reactjs

我有以下vb.net代码,我必须将其转换为React:

For i As Integer = 0 To List.Count - 1

    MyList.AppendFormat("<li><a href=""some_url/page?id={0}""><i class=""fa fa-cloud""></i> {1}</a></li>", List(i).ListId, List(i).ListLocationName)

Next

到目前为止,我完成了这段代码:

render() {
     return (
         <div>
           {
             <ul className="this-nav">

               {this.props.list.map((value, index)=> <li><a href={"some_url/page?id=" + index}></a></li>)

               }

            </ul>
           } 
        </div>
    );

}

这是一个更好的方法吗?我在控制台中收到了这条消息:

  

数组或迭代器中的每个子节点都应该具有唯一的“键”支柱。   检查MyList的render方法。

2 个答案:

答案 0 :(得分:2)

试试这个:

render() {
 return (
     <div>
         <ul className="this-nav">
           {
             this.props.list.map((value, index)=> { return (<li key={`index-${index}`}><a href={ `some_url/page?id=${index}` }></a></li>); })
           }
        </ul>
    </div>
  );
}

你有多余的大括号,并且使用字符串插值来清理它也很简洁。 key(需要反应)和href属性

答案 1 :(得分:2)

我喜欢直接将关键字作为地图数组的索引,所以我以后不必考虑它。

&#13;
&#13;
render() {
     return (
         <div>
             <ul className="this-nav">
               {this.props.list.map((value, index)=> {
                  return (
                    <li key={index}><a href={"some_url/page?id=" + index}></a></li>
                  )
                }
               }
            </ul>
        </div>
    );
}
&#13;
&#13;
&#13;