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

home2 게시판 React 게시판 state와 map함수 활용에 대해 질문드립니다.

state와 map함수 활용에 대해 질문드립니다.

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

    김민성
    참가자

    반나절동안 고민해보고 해결하지 못하여 질문드립니다.

     

    function App() {
      const parsedDate = new Date().toLocaleDateString('ko-KR');

      const arr = ['인형뽑기 잘하는 법', '리액트 독학', '국내 여행지 10곳 추천'];
      const [post, setPost] = useState(arr); //sorting state
      const [like, setLike] = useState(0);
      const [modal, setModal] = useState(false); //modal state

      const postingHandler = ((e) => { //sorting할 수 있는 postingHandler를 만들었습니다. 
        let newArr = [...arr];
        newArr = newArr.sort((a, b) => (a > b) ? 1 : ((b > a) ? -1 : 0))
        console.log(e)
        setPost(newArr);
      });

      const likeHandler = ((e) => {
        setLike(like + 1);
        console.log(e)
      });

      const modalHandler = ((e) => {
        console.log(setModal(e))
        setModal(!modal)
      });

      const mappedList = arr.map((cur, index) => {
        return (
        <div className="list">
          <h3 onClick={modalHandler} key={index}>{cur}<span onClick={likeHandler}>❤️</span>{like}</h3>
          <p>{parsedDate}</p>
        <hr/>
      </div>
    );
    });

      return (
        <div className="App">
        <div className="nav-bar">
          <h1>Mini Blog</h1>
        </div>
        <button onClick={postingHandler}>click</button>
          <div>{mappedList}</div>
          { modal === true ? <Modal /> : null }
        </div>
    );
    }

     

    버튼을 누르면 가나다 순 정렬을 위해 sorting할 수 있는 state와 postingHandler를 생성했습니다. 그리고 mappedList 변수를 만들어 arr의 맵을 해 맵 안의 html 리턴부분에 <h3>{cur}</h3>을 주었습니다. 맵을 하기전에는 <h3>{post}</h3> 원본 state를 넣어서 sorting 구현을 했는데 map함수 안에서 cur라는 현재요소 인자라는게 있을 땐 어떻게 응용해야될지 모르겠습니다. 

    한가지 더 궁금한 사항있습니다.

    일반 jsx로 하드 코딩했을 때, 버튼을 클릭하면 sorting 하는 postingHandler가 실행됬는데, 다시 한번 눌렀을 때 sorting되기 이전으로 돌아가게 하는 방법이 있을 까요? 모달창과 같이 setModal(!modal) 이런식으로 주면 아얘 클릭이 실행이 되지 않아서 구글에도 찾아봤는데 답변을 얻기 힘들어서 질문드립니다.

     

    #9191

    codingapple
    키 마스터

    map을 쓰든안쓰든 버튼누르면 post라는 state를 정렬시키면 정렬기능구현 끝입니다

    sort함수는 원본을 바꿔버리는 함수기 때문에

    따로 post 사본을 만들어두신 다음 되돌리기버튼 누르면 post 사본을 state에 집어넣으면 되돌리기 가능할듯요

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 호 / 개인정보관리자 : 박종흠