• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 React 게시판 센세님 리액트에서 페이지 뒤로가기 탐지 질문잇어요

센세님 리액트에서 페이지 뒤로가기 탐지 질문잇어요

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #98445

    정중식
    참가자
    react-quill이라는 텍스트 에디터를 사용하는데요 (이미지첨부 기능도있음)
    
    이미지를 올리면 aws s3에 바로 올라가서 url을 받아옵니다. 
    
    근데 이렇게하면 사용자가 이미지 올렸다가 취소하던가, 뒤로가기를 누르면 aws s3에있는걸 지워야하는데요
    
    이 지우는 기능을 개발했는데
    
    뒤로가기 탐지에서 애를 먹고있습니다.
    
    
    
    const [fileNames,setFileNames] =useState([]);  //이거는 파일 이름을 저장해줍니다. 
    
      // 페이지 뒤로가기 클릭할 시
      // 이미지 삭제
      useEffect(() => {
        const onPopstate = (currentFileNames ) => {
          
          console.log(fileNames);
          if (currentFileNames && currentFileNames.length > 0) {
            console.log('currentFileNames', currentFileNames);
            currentFileNames.forEach(async (fileName) => {
               // fileName && (await deleteImageFromS3(fileName));
             });
           }
        };
        window.addEventListener('popstate', () => onPopstate(currentFileNames ));
        return () => {
          window.removeEventListener('popstate', () => onPopstate(currentFileNames ));
        };
      }, [fileNames]);
    
    이런식으로 구현을해놨는데요..
    
    게시글 저장하고 다시 수정하려고 그 페이지를 방문후, 뒤로가기를 누르면 
    이미지가 지워져버려요.. 
    
    그러니깐 동작이 어떻게되고있냐면
    
    1. 게시글 저장 (이미지까지올림)
    
    2. 게시글 수정누르고 수정페이지 입성
    
    3. 뒤로가기 누르면 뒤로가기 이벤트발동, 이미지 삭제됨 
    
    ???
    
    그래서 콘솔찍어보니까 
    뒤로가기 이벤트 내에서 fileNames가 콘솔에 찍힙니다.
    예를들면 ['파일명.jpg'] 이렇게 찍혀버려요..
    
    근데 또 웃긴건 뒤로가기 이벤트 밖에서 fileNames를 콘솔에 찍으면 [] 빈 어레이만 출력해줍니다.
    
    그래서 나름대로 알아보니까  뭐 히스토리인가.. 뭔가 저장을하고있는거같은데 아니면 클로저나..  이런 영향인거같은데
    이런경우 어떻게해줘야할까요?
    
    질문이 넘 중구난방이라 ,... 죄송합니다
    #98452

    정중식
    참가자
    ㅎ해결했습니당..
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관, 개인정보처리방침
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠