인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

zmfl3668님의 프로필 이미지
zmfl3668

작성한 질문수

따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]

이럴 경우는 어떻게 해야하나요?

작성

·

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으로 실행한 함수에서도 셋업된 상태값이 완료되지 않는 상태서 실행되었습니다.

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
zmfl3668님의 프로필 이미지
zmfl3668

작성한 질문수

질문하기