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

home2 게시판 Next.js 게시판 선생님 클라이언트 컴포넌트 질문입니다.

선생님 클라이언트 컴포넌트 질문입니다.

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

    plmnko
    참가자
    캡처
    지금 제 폴더 구조는 이렇게 되어있습니다.
    community/page.js는 게시판이고 
    List.js가 게시판에있는 글 1개 입니다.
    
    List.js의 글 제목을 누르면 detail/[id] (상세페이지)로 넘어가는데 
    이 상세페이지 안에 글 수정 버튼이 있어서 그걸 누르면 edit/[id](글 수정페이지)로 페이지가 이동합니다.
    
    근데 여기서 문제는 detail페이지는 서버 컴포넌트라 그냥 util/database.js에 있는 디비 데이터를 갖고올 수 있었는데
    edit/[id]는 <Link>버튼으로 이동하고, 얘가 클라이언트 컴포넌트인데다 지금 tinyMce에디터를 쓰고 있어서 
    디비에 있는 데이터를 어떻게 불러와야 되는지 모르겠습니다.ㅠㅠㅠ
    
    디비 데이터를props로 전송하자니 detail페이지안에 <Link>버튼만 있고
    fetch쓰려고 하니까 async랑 await은 클라이언트 컴포넌트라 못쓴다고 하구요ㅠㅠ 
    import로 util/database.js에 있는 데이터를 불러오니까 db데이터도 fetch로 불러와서인지 왠지 모르게
    tinyMce 에디터랑 만나면 자꾸 오류가 생깁니다...
    
    
    (util/database.js)
    let dbData;
    export const fetchData = async () => {
      try {
        const response = await fetch(
          "https://f6f1-118-32-224-80.ngrok-free.app/community",
          {
            method: "GET",
            headers: {
              "Content-Type": "application/json",
              "ngrok-skip-browser-warning": "69420",
            },
            mode: "cors",
            cache: "no-store",
          }
        );
        if (response.status === 200) {
          const result = await response.json();
          const reversedData = result.data.reverse(); // 데이터를 역순으로 정렬
          //console.log("Fetched data:", reversedData); // 데이터를 콘솔에 출력
          dbData = reversedData; // dbData에 데이터를 할당
          return reversedData;
        } else {
          console.error("Failed to fetch data. Status:", response.status);
          dbData = null; // 에러 발생 시 dbData를 null로 설정
          return null;
        }
      } catch (error) {
        console.error("Error fetching data:", error);
        dbData = null; // 에러 발생 시 dbData를 null로 설정
        return null;
      }
    };
    //await fetchData();
    export default dbData;
     
    글수정 페이지에서 디비데이터를 불러와서 디비 내용 미리 채워놓고 수정하게 해야되는데... 며칠째 해결을 못하고 있습니다ㅠㅠ
    도와주세요 선생님ㅠㅠㅠ
    #106172

    codingapple
    키 마스터
    client component는 리액트처럼 그냥 useEffect안에서 ajax요청하면 됩니다
    아니면 상위 server component에서 db데이터 뽑아서 props 전송하거나요
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 호 / 개인정보관리자 : 박종흠