inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

12.18) 배포 준비하기

12.18 새 일기 쓰기 페이지 제목 수정 관련

해결된 질문

95

진성원

작성한 질문수 5

0

index.html

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Emotion Diary</title>
  </head>
  <body>
    <div id="root"></div>
    <script type="module" src="/src/main.jsx"></script>
  </body>
</html>

New.jsx

import Header from "../components/Header";
import Button from "../components/Button";
import Editor from "../components/Editor";
import { useNavigate } from "react-router-dom";
import { useContext, useEffect } from "react";
import {DiaryDispatchContext} from "../App";
import usePageTitle from "../hooks/usePageTitle";

const New=()=>{
    const{onCreate}=useContext(DiaryDispatchContext);
    const nav=useNavigate();
    usePageTitle(`${useParams.id}번 일기 수정`);
    

    const onSubmit=(input)=>{
        onCreate(
            input.createdDate.getTime(),
            input.emotionId,
            input.content
        );
        nav('/',{replace: true});
    };

    return (
    <div>
        <Header title={"write new diary"}
        leftChild={<Button 
            onClick={()=>nav(-1)}
            text={"< back"}/>}
        />
        <Editor onSubmit={onSubmit}/>
    </div>
    );
};

export default New;

usePageTitle.jsx

import { useEffect } from "react";
const usePageTitle=(title)=>{
    useEffect(()=>{
        const $title=document.getElementByTagName("title")[0];
        $title.innerText=title;
    },[title]);
};

export default usePageTitle;

이전 과정까지는 문제없었는데 12.18에 있는 새일기 쓰기 페이지에 들어왔을 때 페이지에 아무것도 뜨지 않는 문제가 발생하는데 어떤게 문제일까요

javascript react node.js

답변 2

0

이정환 Winterlood

안녕하세요 이정환입니다.

AI 인턴의 답변대로 getElementByTagName가 아닌 getElementsByTagName 으로 사용하셔야 합니다

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 진성원님께서 언급하신 문제는 페이지에 아무것도 나타나지 않는 현상으로, 주로 컨텍스트 또는 컴포넌트 내에서 발생하는 논리 오류나 렌더링 오류 때문일 수 있습니다. 몇 가지 점검사항과 개선사항을 제시해 드리겠습니다.

문제 원인 및 해결방법

  1. Custom Hook에서의 오타:
    • usePageTitle에서 document.getElementByTagName이 아닌 document.getElementsByTagName를 사용해야 합니다. 브라우저는 getElementByTagName라는 메서드를 인식하지 못합니다.
   const usePageTitle = (title) => {
       useEffect(() => {
           const $title = document.getElementsByTagName("title")[0];
           $title.innerText = title;
       }, [title]);
   };
  1. useParams 사용 오류:

    • useParams.id를 그대로 사용하면 안 되는 상황입니다. New 컴포넌트에서 id는 실제로 사용되지 않으며, 새로운 일기를 작성할 때에는 useParams를 사용할 일이 없습니다. usePageTitle에 넘기는 인자 값을 다시 확인하세요.
  2. 컴포넌트 구조 확인:

    • New 컴포넌트에서 <Editor />를 사용할 때 onSubmit 메서드를 매핑하셨지만, Editor 컴포넌트 내에서 initData나 다른 필요한 prop이 없는지 확인해보세요.
  3. 콘솔 오류 메시지:

    • 개발자 도구의 콘솔에서 오류 메시지를 확인하고, 제공한 코드 외 다른 부분에서 문제가 발생하지 않았는지 점검하세요.
  4. Context 및 Router 확인:

    • DiaryDispatchContextRouter 설정이 올바른지 재검토하시고, onCreate 함수가 제대로 정의되고 있는지 확인하세요.

유사한 문제 해결을 위한 참고 링크

위의 방법들을 적용하며 코드를 개선하시면 문제 해결에 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

0

진성원

해결되었습니다!

useEffect와 lifecycle문의

0

31

2

프론트엔드 학습 수준 문의

0

43

2

리액트 챕터별 코드에서 eslint 설정파일이 없어요

0

51

2

데이터 로딩중 화면만 계속 나와요!!

0

56

2

퍼블리셔일경우 어느정도 수준까지 강의를 들어야할까요

0

80

2

이후의 커리큘럼 문의

0

102

2

실슬환경 설정에서 save후 console.log 부분이 새로고침이 안되는현상입니다.

0

50

2

최적화 관련 질문있습니다 (useMemo 등)

0

85

3

프로바이더 컴포넌트의 위치는 어떤 기준인가요?

1

82

3

Date 객체에 관련하여 질문드립니다.

0

85

2

리액트 개정판 교재 질문

0

60

2

예제코드가 안나와요!

0

78

2

select a variant 선택에서 javascript와 javascript+react compiler 중 무엇을 선택해야하나요? com

0

109

2

onMouseEnter 관련 문의 드립니다

0

93

3

배열의 렌더링 관련 질문 드립니다.

0

73

2

2:40초 refObj를 콘솔로 출력시 오류가 발생합니다.

0

113

2

TS, 리액트 강의중에 뭘 먼저 수강하는게 좋을까요?

0

137

2

useCallback 적용한 onCreate, onUpdate, onDelete 함수..

0

71

1

vs code 자동완성관련 문의

0

113

2

91강 useEffect내에서 상태변화함수 호출시 발생하는 에러

1

181

2

87강 필터 함수 질문

0

69

2

useRef, useState count 비교

0

67

2

안된다고했던 이유가 무엇이었는지 모르겠습니다

0

91

2

85강에서 객체를 왜 클래스로 만들어서 new 하지 않는건지 궁금합니다.

0

76

2