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

home2 게시판 React 게시판 선생님 개인프로젝트 도움 요청 드립니다

선생님 개인프로젝트 도움 요청 드립니다

  • 이 주제에는 2개 답변, 2명 참여가 있으며 Marco2 년, 5 월 전에 전에 마지막으로 업데이트했습니다.
3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 글쓴이
  • #70780

    Marco
    참가자
    해당 컴포넌트는 db에 있는 리스트를 받아와서 수정하는 컴포넌트입니다
    불러온 db 리스트에 id를 따로 설정해 놓지 않아서
    해당 배열 길이로 임시 id를 붙여 추가와 삭제 작업이 가능하게 하려고 합니다
    
    
    기존 리스트를 보여주는 것 까진 작업이 되었고
    nextId 변수를 이용해 리스트가 새로 추가될 때 마다 
    기존 리스트 총 갯수 + 1
    가 되게 코딩을 하였는데요
    1개까지는 id 숫자가 올라가는데 그 이후로는 고정이 되어 오류가 발생합니다
    
    3일째 이것저것 해봐도 해결이 되지않아 선생님께 도움을 요청드립니다!
    
    
    
    import React, { useCallback, useEffect, useRef, useState } from 'react';
    import Insertlist from './Insertlist';
    import Insertprogram from './Insertprogram';
    function AddInput({addOpt, selectedShow}) {
    const prg = selectedShow.program;
    const anc = selectedShow.anchor;
    const [ array, setArray ] = useState([]);
     
    let nextId = useRef(0);
    // db에 있는 데이터를 미리 뿌려줌
    if (addOpt == 'program') {
    let totalNumber = prg.artist.length;
    for ( let i = 0; i <= totalNumber - 1; i++ ) {
     array.push({
     id: i,
     artist: prg.artist[i],
     title: prg.title[i]
     });
     }
     nextId = totalNumber;
     } else if (addOpt == 'anchor') {
    let totalNumber = anc.artist.length;
    for ( let i = 0; i <= totalNumber - 1; i++ ) {
     array.push({
     id: i,
     artist: anc.artist[i],
     title: anc.title[i]
     });
     }
     nextId = totalNumber;
     }
    const [ programs, setPrograms ] = useState(array);
    // 리스트 추가
    const onInsert = useCallback((artist ,title) => {
    let program = {
     id: nextId,
     artist,
     title
     }
    setPrograms(programs.concat(program));
     nextId += 1;
     console.log(programs)
     },[programs])
    // 해당 리스트 삭제
    const onRemove = useCallback(id => {
    const copy = [...programs];
    const deleted = copy.filter(program => program.id !== id);
     
    setPrograms(deleted);
     },[programs]
     )
    return (
    <>
    {/* 기존 or 추가 되는 리스트 */}
    <Insertlist programs={programs} onRemove={onRemove} addOpt={addOpt} />
    {/* 데이터 추가하는 input */}
    <Insertprogram onInsert={onInsert} />
    </>
     );
    }
    export default AddInput
     
    #70786

    codingapple
    키 마스터
    useRef로 만든 변수는 변경할 때 useRef변수.current 같은걸 변경해줘야 변경될걸요
    #71146

    Marco
    참가자
    답변 감사드립니다 썬생님!
3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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