我想显示一个以逗号分隔的名称列表,这些名称来自我的react组件中的数组。渲染的html看起来像:
<div>
<span>Liza</span>, <span>Eric</span>, <span>Michael</span>, <span>Natalie</span>, <span>Stephan</span>
<a href="#" className="show-more hidden">and {remaining} more...</a>
</div>
但是,此列表最多需要显示2行内容。如果列表超过2行,我需要显示隐藏的其余名称的数量:
Liza,Eric,
迈克尔 - 还有2个......-
列表也必须是响应式的(如果我要截断,只显示'X more')我需要在最后显示的名称的末尾截断列表,以便“和更多X”文本适合2行。
有人可以推荐一种方法来解决这个问题吗?我相信纯CSS解决方案可能因为截断而无效。
谢谢!
PD我想要实现的截图:
答案 0 :(得分:1)
我猜有(接近)纯CSS解决方案。但有了反应,你就会这样:
visibility/opacity
以隐藏元素ref
个回调附加到每个项目:<span ref={item => this.items.push(item)}
componentDidMount()
迭代this.items
并总结项目的宽度(item1.width + item2.width ...)this.setState({truncate: true, remainingItemCount: x})
visibility
设置为正常)https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute