팀 프로젝트 오전4시간 내용
현재 생긴 문제점 : 초기에 로딩 시 세션 스토리지에서 값이 가져오기 전에 export 안의 값들이 실행되어서 세션 스토리지의 group 값이 비어 있어서 map이 과 같은 배열 함수들이 막히게 된다
강제로 딜레이를 줘서 세션스토리지에 값이 들어오면 실행하게 했다. 대신 다른 문제점이 생겼는데 달력의 일 수 만큼 반복을 한다는 점이다. 그 과정에서 받아온 값이 비어있기도 하다. 일단 1번만 실행할 방법을 찾아야 한다
const [groupData,setGroupData]=useState([]);
useEffect(()=>{setTimeout(install,1000),[])
const install=()=>{setGroupData(JSON.parse(sessionStorage.getItem('group')))}
useEffect에서 조건부분인 []가 비어 있으면 마운트시에 단일, setTimeout은 함수를 N(ms)뒤에 실행하는 것이다
확인해본 결과 react-big-calendar에서 컴포넌트로 들어가는 부분부터 달력의 일 수 만큼 반복하는것을 찾았다.
위에 적은 1번만 실행되기 위해서는 상위에서 처리해서 그 값을 export로 꺼내서 줘야 한다
세션 스토리지에 해당 값이 저장되는 시간이 경과되는 만큼 그 이후에 실행해 줘야 하는 문제는 어떻게 할 수 없는것 같다