작성
·
131
0
const [loadPrdData, setLoadPrdData] = useState({
skip: 0,
limit: 4,
postSize: 0,
});
const getProducts = config => {
postApi(`${PRODUCT_SERVER}/products`, config).then(res => {
if (loadPrdData.loadMore) setPrdList([...prdList, ...res.data.productsInfo]);
else setPrdList(res.data.productsInfo);
setLoadPrdData({ ...loadPrdData, postSize: res.data.postSize });
});
};
const loadMoreHandler = () => {
let skipIdx = loadPrdData.skip + loadPrdData.limit;
let config = {
skip: skipIdx,
limit: loadPrdData.limit,
loadMore: true,
};
getProducts(config);
setLoadPrdData({ ...loadPrdData, skip: config.skip,loadMore:true });
};
안녕하세요 강사님
만약에 저렇게 로드 관련된 값들을 오브젝트로 변경해서 할시
더보기 버튼(loadMoreHandelr) 실행 후 getProducts 함수에선 setLoadPrdData 가 변경된 상태로 읽히지 않는 경우가 발생하는데요 로직순서를바꾸어도 보고 state 값이 비동기 로직이여서 애를 먹고있습니다.
getProducts 에서 state 값이 셋업이 된 값을 체크하는 방법이 있을까요?
setLoadPrdData(value,cb) 으로 해보았지만 cb으로 실행한 함수에서도 셋업된 상태값이 완료되지 않는 상태서 실행되었습니다.
답변