22.03.10 15:15 작성
·
176
0
handleFilters를 정의해줄때, 마지막에 setFilters(newFilters)로 state을 업데이트 해주면 문제가 생기나요?
다름이아니라 지금 filtering 된 후의 데이터가 limit 숫자를 넘어서서 더보기 버튼이 활성화된 경우엔, 여기서 더 보기 버튼을 누를시에 필터링된 데이터의 다음 페이지가 아닌 원래 전체 데이터에서 limit 숫자만큼 더한 숫자번째의 데이터부터 출력이 되는데요. 보니 더보기 버튼이 호출하는 메소드는 사실 필터랑 상관없는 getProducts 다 보니 제대로 출력이 안되게 되는데요. 이것을 해결하려고 아래와같이 그냥 loadMoreHandler를 정의해줄때도 filters값을 추가하여 이 값에 Filters state값을 읽어서 넣어주었는데, 이때 Filters를 업데이트하줘야해서 setFilters를 추가해 줬습니다. 혹시 이렇게해도 상관없는 건가요?
const loadMoreHandler = () => {
let skip = Skip + Limit;
let body = {
skip: skip,
limit: Limit,
filters: Filters,
loadMore: true
}
console.log(body.filters);
getProducts(body);
setSkip(skip);
};
const handleFilters = (filters, categories) => {
const newFilters = {...Filters};
newFilters[categories] = filters
showFilteredResult(newFilters);
setFilters(newFilters);
};