velopert / react-tutorial

벨로퍼트와 함께하는 모던 리액트 튜토리얼 문서
https://react.vlpt.us/
350 stars 101 forks source link

6. API 재로딩 문제 해결하기 · GitBook #34

Open utterances-bot opened 4 years ago

utterances-bot commented 4 years ago

6. API 재로딩 문제 해결하기 · GitBook

https://react.vlpt.us/redux-middleware/06-fix-reloading.html

jinsugoda commented 4 years ago

asyncUtils.js 에서 keepData 는 필요가 없는것 같습니다. 아무래도 modules/posts 에서 true로 호출하는데 구지 keepData를 쓸필요가 없는것 같습니다. export const handleAsyncActions = (type, key) => { const [SUCCESS, ERROR] = [${type}_SUCCESS, ${type}_ERROR]; return (state, action) => { switch (action.type) { case type: return { ...state, [key]: reducerUtils.loading(keepData ? state[key].data : null) }; ............... 여기서 [key]: reducerUtils.loading(keepData ? state[key].data : null) 을

[key]: reducerUtils.loading(state[key].data) 로 처리해도 괜잖을거 같은데요

그리고 또 handleAsyncActionsById 에서도 loading 시 이렇게 처리 하셨는데 keepData ? state[key][id] && state[key][id].data : null 이것을

state[key][id] && state[key][id].data 이것으로 처리하여도 괜 잖을거 같습니다. 그래서 modules/posts 쪽도 true 파라미터를 없애야죠

제의견에 댓글 주시면 감사하겠습니다.

shmoon2917 commented 4 years ago

@jinsugoda 위 posts 예제만을 보면 데이터를 재로딩 하지 않으려는 문제 해결을 위해서 말씀하신대로 작성해도 해결됩니다. 다만 작성하신 코드와 기능적으로 완전히 같지는 않습니다. keepData 가 false 일 때 기존의 데이터가 있어도 null 처리해주는 부분은 작성하신대로는 구현이 불가합니다.

grap3fruit commented 3 years ago

깔끔한 설명으로 정리해주셔서 정말 감사합니다. 큰 도움이 되었습니다!!