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

home2 게시판 React 게시판 선생님 질문있어요..

선생님 질문있어요..

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

    정중식
    참가자
    import React, { useState } from 'react';
    import './App.css';
    const App = () => {
      const [list, setList] = useState([
        {
          title: '남자코트 추천',
          like: 0,
        },
        {
          title: '강남 우동 맛집',
          like: 0,
        },
        {
          title: '파이썬 독학',
          like: 0,
        },
      ]);
      return (
        <div className='App'>
          <div className='black-nav'>
            <div>개발 blog</div>
          </div>
          {list.map((item, index) => (
            <div className='list' key={index}>
              <h4>
                {item.title}
                <span
                  onClick={() => {
                    setList({ ...item.like++ });
                  }}
                >
                  👍
                </span>{' '}
                {item.like}
              </h4>
              <p>2월 17일 발행</p>
            </div>
          ))}
          ;
        </div>
      );
    };
    export default App;
    위의 코드에서  onClick={() => {
                    setList({ ...item.like++ });
                  }}
    
    이부분에서 계속App.js:22 Uncaught TypeError: list.map is not a function에러가나오는데 어떻게 고쳐주면될까요?...
    #68066

    정중식
    참가자
    시도해본것
    
      const likeChange = (index) => {
        setList({ ...list }, list[index].like++);
        console.log(list);
      };
    
                <span
                  onClick={() => {
                    likeChange(index);
                  }}
                >
                  👍
                </span>
    
    
    
    혹은
    
    <span onClick={() => setList(item.like + 1)}>👍</span>
    
    <span onClick={() => setList(...list, item.like++)}>👍</span>
     
     
    
    
    #68084

    정중식
    참가자
    최종으로 아래와같이하기는했는데 
    추천 수는 잘 올라갑니다. 근데 문제는, 기존리스트 + 요소가 계속추가되네요.. 혹시 어떤식으로 코드를짜면 좋을까요? 
    머리가 한계인것같습니다..ㅜ
               <span onClick={() => setList([...list, item.like++])}>👍</span>
     
    #68128

    codingapple
    키 마스터
    let copy = [...list]
    copy[index].like++
    setList(copy)
    합시다
    #68220

    정중식
    참가자
    땡큐베리스트로베리입니다
    여태까지 원본객체를 직접적으로 만지고있었네요.. 
    원본객체를 복사해서 그걸 이용하셨네요 감사합니다!
5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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