For 循环包含 React 中渲染内的链接

Posted

技术标签:

【中文标题】For 循环包含 React 中渲染内的链接【英文标题】:For loop containing links inside a render in React 【发布时间】:2017-12-27 05:42:41 【问题描述】:

我有以下 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>
    );


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

数组或迭代器中的每个子元素都应该有一个唯一的“key”道具。 检查 MyList 的渲染方法。

【问题讨论】:

但有一件事,在您的地图回调函数中,您将“值”作为参数但从未使用过,这是故意的吗? 检查这个答案When are required in react和React DOC关于如何将表达式放入JSX。 loop inside React JSX的可能重复 【参考方案1】:

试试这个:

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>
  );

你有多余的大括号,而且对 'li' 键(反应所需)和 href 属性使用字符串插值更简洁

【讨论】:

【参考方案2】:

我喜欢将键直接设置为映射数组的索引,这样我以后就不必考虑了。

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>
    );

【讨论】:

以上是关于For 循环包含 React 中渲染内的链接的主要内容,如果未能解决你的问题,请参考以下文章

React中循环渲染类似Vue中 的v-for

2017.12.07 React组件嵌套以及for循环渲染子组件

在 React JSX 中循环内循环

React 组件中的错误导致应用程序重新渲染,从而导致无限循环。为啥?

如何在react.js 中利用for循环之类的输出html

如何在没有要映射的对象数组的情况下在 React.js 中循环和渲染元素?