請問我有問題。下面的代碼使用加載更多按鈕來顯示記錄。 我將限制設置爲2.問題是它顯示前2條記錄,在下一次點擊時,它顯示剩餘的6條記錄,而不是以用戶點擊爲基礎的限制顯示在兩個(2)中。 有人可以幫我解決這個問題。加載更多按鈕與Reactjs無法正常工作
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<style>
.pic{
background:blue; color:white;}
</style>
<script src="build/react.min.js"></script>
<script src="build/react-dom.min.js"></script>
<script src="build/browser.min.js"></script>
<script src="build/jquery.min.js"></script>
<div id="app"></div>
<script type="text/babel">
class Application extends React.Component {
constructor(props) {
super(props)
this.state = {rec : [
{ "name" : "Tony", "Age" : "18"},
{ "name" : "John", "Age" : "21" },
{ "name" : "Luke", "Age" : "78" },
{ "name" : "Mark", "Age" : "90" },
{ "name" : "Jame", "Age" : "87" },
{ "name" : "Franco", "Age" : "34" },
{ "name" : "Biggard", "Age" : "19" },
{ "name" : "tom", "Age" : "89" },
],
limit : 2};
this.loadMore = this.loadMore.bind(this);
}
loadMore() {
let recLength = this.state.rec.length;
this.setState({limit:recLength});
// show more entries
// switch to "show less"
}
render() {
return <div className="container">
<div>
<h3>List of Records</h3>
<ul>
{this.state.rec.slice(0,this.state.limit).map((obj, i) =>
<li key={i}>{obj.name} - {obj.Age}</li>
)}
</ul>
</div>
<p>
<a className="pic" onClick={this.loadMore}>Load more Button</a>.
<br />
//display image spinner as user clicks on load more button
</p>
</div>;
}
}
ReactDOM.render(<Application />, document.getElementById('app'));
</script>
</body>
</html>
您不必擔心限制大於'rec.length'。它會給出一個超出範圍的索引,因此它只會返回所有索引(這將是數組中的所有內容)。 –
@Ramzi C.你的解決方案是好的,但如果沒有更多的記錄顯示,我如何打印消息「沒有更多的記錄加載」。我可以在用戶點擊加載更多按鈕時顯示加載圖像。謝謝 – briandenny
爲您的評論添加了一些更改。 –