问题:返回成对元素反应JSX
在反应,要通过映射的阵列来创建DOM结构,但在阵列中的每个项目应该返回2个元素。例如
import React from 'react'
import _ from 'lodash'
let { Component } = React
export default class DataList extends Component {
render() {
let array = [
{def: 'item1', term: 'term1', obj1: 'rand'},
{def: 'item2', term: 'term2'}
]
return (
<dl>
{_.map(array, (item) => {
return (
<dt>{item.def}</dt>
<dd>{item.term}</dd>
)
})}
</dl>
)
}
}
React不让你渲染兄弟姐妹而不把它们包装在一个容器元素中,这会破坏这里的DOM结构。
哈,非常好......我花了几秒钟才弄清楚它是如何工作的,这是唯一的缺点(即从代码可读性POV稍微难以理解),但是很多更优雅的解决方案,以及我将从现在开始使用的解决方案。 – stukennedy
还有一件事:通常不建议您使用阵列中的索引作为关键字。这里有一篇很棒的文章:https://medium.com/@robinpokorny/index-as-a-key-is-an-anti-pattern-e0349aece318 – Kiril