저는 ReactJS를 처음 접했고 내가 작업하고있는 한 가지는 페이지 매김입니다. ReactJS는 복잡한 UI보기를 만드는 훌륭한 도구이지만 때로는 가장 간단한 방법이 가장 어렵습니다. jQuery에서 할 수 있지만 React를 사용하여 수행하려고합니다.ReactJs : 더 많은 페이지 매김 유형로드 (추가)
기본적으로, 항목이 본문에 추가되는 (예 : 뉴스 피드) 페이지 매김의 "추가로드"스타일을 갖고 싶습니다. 내 코드에서 데이터를 가져 와서 상태 변수에 넣은 다음 DOM을 렌더링하라는 아약스 요청을한다. 항목에 대한 새 변수를 만들었 기 때문에 데이터 한 페이지만으로이 작업을 성공적으로 완료했습니다.
onCallSuccessGetListings: function(data) {
this.setState({ hasSuccess: data.success });
if(data.success !== false) {
this.setState({
hasSuccess: JSON.parse(data).success,
newListings: false
});
if(this.props.hasClickedPagination) {
this.setState({
newListings: JSON.parse(data).result
});
} else {
this.setState({
listings: JSON.parse(data).result
});
}
}
},
기본적으로 사람이 "추가로드"를 클릭 한 다음 새 변수를 사용하여 데이터를 저장합니다. 다음은 렌더링 기능 : 당신이 볼 수 있듯이
render: function() {
var markup = [],
nextMarkup = [];
if(this.state.hasSuccess) {
markup = Object.keys(this.state.listings).map(function(value){
return (
<div className="property__item" key={value}>
blablabla
</div>
)
}, this)
if(this.state.newListings !== false) {
nextMarkup = Object.keys(this.state.newListings).map(function(value){
return (
<div className="property__item" key={value}>
blablabla
</div>
)
}, this)
}
} else {
markup.push(<p key="1">No results</p>)
}
return (
<div className="property__list--grid">
{ markup }
{ nextMarkup }
</div>
);
}
, 내가 코드를 복제하고있어 나는 "반작용"스타일을 그것을 할 수있는 방법을 찾을 수 없습니다. 사용자가 "Load More"를 10 번 이상 클릭 할 때 10 개의 변수를 생성하고 싶지 않습니다.
누구든지 도움을받을 수 있다면 좋을 것입니다. 나는 해결책을 생각할 수 없어 며칠 동안 나를 괴롭혔다.
감사합니다.
감사합니다. @ctrlplusb! 거의 고쳐졌습니다. 남은 유일한 것은 반환 된 데이터가 Array가 아니라 Array이기 때문에 기존의 상태 변수에 새로운 결과를 추가하는 방법입니다. 그래서 concat()가 작동하지 않습니다. – thomas
나는 그걸로 당신을 도울 수있는 확실한 것. 질문에 예제 결과를 복사 할 수 있습니까? – ctrlplusb
Nevermind, 해결책을 찾았습니다! 기본적으로 .map() 및 concat()을 사용하여 Object를 Array로 변환하기위한 임시 변수를 만들었습니다. @ctrlplusb의 도움에 감사드립니다. 결과는 더 간단하고 더 깨끗합니다. – thomas