我目前以典型的 React 风格渲染一个列表。该列表作为数组道具传递,我像这样映射它:
{this.props.myList.map(createListItem, this)}
因此,当添加新元素时,看起来最新的项目已添加到列表的末尾。
我希望最新的项目出现在顶部。即一切都按时间倒序出现。
到目前为止我提出的两个选项是:
1)反转列表,每次添加内容时创建一个新数组,并将此反转列表作为 prop 传递。
2)使用轮班。
但由于性能原因,它们都没有吸引力。
我不知道 Javascript 支持逆序映射。我一直在尝试 for 循环,但一直无法让它工作。
在 React 中以相反顺序渲染数组的惯用方法是什么?
如果您选择使用反转列表reverse()
, shift()
or splice()
,您应该首先制作数组的浅表副本,然后在副本上使用该函数。 React 中的 props 不应该被改变。
例如:
[...this.props.myList].reverse().map(createListItem, this)
or
this.props.myList.slice(0).map(createListItem, this)
(这确实应该是一条评论,但我还没有这样做的要点:))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)