【发布时间】:2017-06-05 13:53:52
【问题描述】:
我是 React 新手,我想在我的应用程序中添加一个简单的“显示更多”按钮。我有一个包含数据的数组,我想在其中默认显示 3 个条目。当用户单击show more 时,应呈现其余数据,并且按钮应将文本更改为show less。我不确定该怎么做。
这是我目前得到的:
class Application extends React.Component {
constructor() {
super()
this.cars = [
{ "name" : "Audi", "country" : "Germany"},
{ "name" : "BMW", "country" : "Germany" },
{ "name" : "Chevrolet", "country" : "USA" },
{ "name" : "Citroen", "country" : "France" },
{ "name" : "Hyundai", "country" : "South Korea" },
{ "name" : "Mercedes-Benz", "country" : "Germany" },
{ "name" : "Renault", "country" : "France" },
{ "name" : "Seat", "country" : "Spain" },
]
this.isLoaded = false
}
showMore() {
// show more entries
// switch to "show less"
}
render() {
return <div className="container">
<h3>Click show more to see more data</h3>
<div className="row">
<h3>List of Cars</h3>
<ul>
{this.cars.slice(0,3).map((car, i) => <li key={i}>{car.name} - {car.country}</li>)}
</ul>
</div>
<p>
<a className="btn btn-primary" onClick={this.showMore()}>Show more</a>.
</p>
</div>;
}
}
React.render(<Application />, document.getElementById('app'));
这是一个JSBin,其中包含正在运行的代码
有人可以帮帮我吗?
【问题讨论】:
-
isLoaded 应该处于您的状态。要更新您的渲染,请调用 setState。您可以有一个“state.itemNumber”,当您调用 showMore 时将其更新为长度。在你的 JSX 中,切片 (0, state.itemNumber) 你很好
标签: javascript reactjs