묻고 답해요
147만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
순위 정보를
불러오고 있어요
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
인터셉터 오류
book 페이지의 인터셉터 페이지를 만드는 과정이다.기존 book 페이지에서 인자값을 받고 있기 때문에 인터셉터 페이지에서도 인자값을 받기 위해서 props로 받았지만 인터셉터 페이지가 정상적으로 작동하지 않는다.import BookPage from "@/app/book/[id]/page" export default function Page(props: any) { //기존에 book 페이지에서 받고 있던 프롭스를 그대로 가져와야 해서 any타입으로 받는 것 return ( <div> 가로채기 성공 <BookPage {...props}/> </div>) } book 페이지의 인자 값은 다음과 같다.export default async function Page({ params, }: { params: Promise<{ id: string }>; }) { const resolvedParams = await params; const id = resolvedParams.id; return ( <div className={style.container}> <BookDetail bookId={id} /> <ReviewEditor bookId={id} /> <ReviewList bookId={id} /> </div> ); }인터셉터 페이지에서 인자값을 props: any가 아니라 다르게 설정해야 하나요?
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
인터셉터 오류
book 페이지의 인터셉터 페이지를 만드는 과정이다.기존 book 페이지에서 인자값을 받고 있기 때문에 인터셉터 페이지에서도 인자값을 받기 위해서 props로 받았지만 인터셉터 페이지가 정상적으로 작동하지 않는다.
-
해결됨2시간으로 끝내는 프론트엔드 테스트 기본기
'toBeInTheDocument'오류 문의
안녕하세요 강의 잘 듣고 있습니다수강하면서 실습을 위해 올려주신 깃헙을 클론해서 각종 라이브러리 설치 후 실행하는데 jest-dom라이브러리를 인식을 못하는 건지 계속 다음 부분에서 오류가 나서 테스트가 실패하네요 클론 후 코드 수정 등은 한 것이 없는데 무엇이 문제일까요?
-
미해결React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지
조건부 렌더링에서 로직 처리 차이
export default function CourseItem({title, description, thumbnail, isFavorite}) { let defaultIconTag = "/img/heart/heart-icon.svg" if (isFavorite) { defaultIconTag = "/img/heart/heart-fill-icon.svg" } return ( <article className="course"> <img className="course__img" src={thumbnail} alt="강의 이미지"/> <div className="course__body"> <div className="course__title">{title}</div> <div className="course__description">{description}</div> </div> <div className="course__icons"> <button className="btn"> <img className="icon-heart" src={defaultIconTag} /> </button> </div> </article> ); }저는 기존 CourseItem메서드 내에서 변수를 생성해서 만들었는데 강의에서는 새로운 메서드를 생성해서 진행하더라고요.메서드를 따로 생성해서 버튼 태그랑 묶어서 같이 넘기신 이유가 있나요? 현업에서 어떤 방식을 더 선호할까요?
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
vite를 통해 프로젝트 생성 시 React Router 는 무엇일까요?
강의에서는 4가지 뿐인데 vite가 현재일자 기준으로 업데이트가 되었는지 5번째 칸에 React Router v7이 생겼습니다. 혹시 React Router v7를 선택하면 수강하는데에 문제가 있을까요?
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
책과 강의 병행 중 서로 다른 내용이 있어요
안녕하세요 책과 강의를 병행하고 있습니다!4장 리액트 앱 만들기, 5장 실습부분을 진행하고 있는데요책에서는 create-react-app 으로 리액트 앱을 만들고, 강의는 vite로 앱을 만들고 있습니다. 또한 책에서는 main.jsx대신 index.js와 bundle.js가 생성된다고 하는데 강의를 따라가면 되는걸까요 ??분명 책과 강의의 차이점에 대해 어딘가에 정리되어있을 것 같은데.. 찾을 수가 없어서 질문드립니다!
-
미해결한 입 크기로 잘라먹는 Next.js(v15)
vercel 배포시 빌드 오류
vercel에 배포하려고 빌드할때 에러 문의입니다.에러 로그는 아래와 같습니다.Export encountered an error on /book/[id]/page: /book/2, exiting the build. ⨯ Static worker exited with code: 1 and signal: null Error: Command "npm run build" exited with 1/book/[id]/page.tsx 파일에서 사진과같이 generateStaticParams() 함수를 주석치면 빌드가 잘 되더라구요어떤이유인지 알 수 있을까요 ?
-
해결됨Next.js App router 기반 Chat GPT 만들기
loading이 동작하지 않습니다.
https://github.com/JeanYoungPark/next-chat-gptloading 부분 코드 작성중인데 loading 컴포넌트가 따로 로드되지 않는 것 같습니다. 원인을 알 수 있을까요?
-
미해결실무에 바로 적용하는 프런트엔드 테스트 - 1부. 테스트 기초: 단위・통합 테스트
2부 할인쿠폰 관련
안녕하세요.제공해주신 인강으로 프론트엔드 테스트를 공부하고 있는 수강생입니다. 최근 일이 많아져 인강 듣는 시간을 할애하지 못하였지만 이번 설 연휴를 맞이하여 1편 다보고 2편까지 보려고 하는데 제가 실수로 할인 쿠폰을 발급 받았다가 사용하지 못하고 유효기간이 지나 버렸는데 재발급을 할수 있는 방법이 있는지 문의드립니다!
-
미해결Next + React Query로 SNS 서비스 만들기
params 질문
[username] 슬러그 / 즉 유저 프로필 페이지에서 params값을 받아서 유저정보를 불러오는데 params의 값을 출력해보니 값이 나오긴하는데 인코딩된 값이 나옵니다 ㅠㅠencodeURIComponent 함수를 사용한 적이 없는데 왜 이렇게 나오는지 궁금합니다
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
async 제거(영상내용) 후 searchParams 오류
안녕하세요 강사님.해당 강의 8:31 초 내용을 저장했을때 아래와 같은 오류가 나왔습니다. 언뜻 봤을 때는 await를 적용하지 않아서 라는 것으로 해석이 되는데, 영상 초반에 비동기 컴포넌트를 따로 빼내어 사용하기로 하여 async를 제거하였는데 아래와 같은 오류가 나오지만 화면은 의도된 바와 같이 동작을 합니다. 강의 영상 및 자료와 동일하게 진행하였습니다 강사님의 강의자료에서 코드를 복사하여 BookListSkeleton만 제거 수정을 하여 테스트 시 위와 같은 오류가 동일하게 발생합니다.https://github.com/winterlood/onebite-next/blob/main/section06/chapter05/src/app/(with-searchbar)/search/page.tsx 영상에서는 저와 같은 오류가 발생하지 않는 것 같은데, 이런 오류가 발생하면 빌드가 안되는데... 확인 부탁드립니다.
-
미해결한 입 크기로 잘라먹는 Next.js(v15)
revalidatePath 오류
강의 처럼 revalidatePath(`book/${bookId}`)를 해서 리뷰를 작성하고 작성하기 버튼을 눌러서 페이지를 재검증하는 상황revalidatePath는 퍼지를 통해서 캐시가 모두 삭제되는 것이 이해함빌드 후, 프로젝트 모드로 실행리뷰를 작성하고 리뷰를 누르는 상황작성한게 보이긴 하지만 두번째꺼가 ㅋㅋㅇㄹㅋ 였는데 아래와 같이 바뀝니다.또한 새로고침을 누르면 다시 원상태로 돌아갑니다.아래와 같이 새로고침을 누르면 퍼지 후에 book/1 페이지는 다이나믹으로 작동해야되는데 하지 않는 것으로 파악됩니다. prisma studio를 확인해보면 데이터는 들어갔습니다.그런데 npm run dev로 하면 잘 됩니다...왜 그런 걸까요??
-
미해결Next + React Query로 SNS 서비스 만들기
트렌드섹션 질문
회원가입 후 바로 로그인 된 상태에서 home으로 가면 트렌드를 가져올 수 없다고 뜨는데 혹시 로그인 후 로그아웃버튼이 뜨지 않았던 상황과 비슷한 상황인가요 ? 로그아웃 버튼처럼 prop으로 session정보를 넘겨줘야 하는건지 궁금합니다
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
에러 핸들링 오류
인덱스 페이지를 오류를 발생시키는 상황입니다.과정에서 error.tsx 파일을 (with-searchbar) 폴더안에 만들었습니다.데이터를 불러오는 서버를 끄로 인덱스 페이지를 새로고침하면 Footer에서 오류가 발생합니다.글로벌 레이아웃에 Footer 컴포넌트를 불러와서 이런 오류가 발생하는 걸까요?
-
해결됨[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
'섹션 06-01 동기/비동기' 강의
[중급] 웹 프론트엔드 부트캠프 강의중에서'섹션 06-01 동기/비동기' 강의는 강의영상이 없다고 뜨는데 강의영상이 없는게 맞는건가요??
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
esbuild 설치 오류
안녕하세요 😀 강의 중 프로젝트 1 에서는 npm install 이 정상적으로 진행되었으나, 이번 useEffect 실습을 위해 강의내용처럼 새폴더 생성 후 npm i를 하니 아래와 같은 오류가 발생합니다.구글링해서 여러 방법을 시도했으나 해결되지 않아 어떻게 해야할 지 질문드립니다 😥
-
미해결따라하며 배우는 리액트 네이티브 기초
React-Native-Cli 컴파일 오류
이런 오류가 계속뜨네요...캐시도 지웠다 다시 깔아봤고 종속성들도 다시 설치했는데 계속 오류가 뜹니다. 혹시 해결방법이 어떻게 될까요?!
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
리스트의 검색 기능에 대한 질문입니다!
안녕하십니까! 해당 강의를 열심히 들으며 리엑트를 공부하고 있는 대학생입니다. 듣다가 막히는 부분이 생겨 질문을 하게 되었습니다.List.jsx 에서 검색 기능을 구현하는 부분에서 궁금한 것이 생겼습니다. 강의에서는 아래 코드처럼 getFilteredData 함수를 작성하셨습니다.const getFilteredData = () => { if(search === ""){ return todos; } return todos.filter((todo) => { todo.content.toLowerCase().includes(search.toLowerCase()) }); };하지만 저는 아무리 오타를 점검하고 수정해도 기능이 구현이 되지 않아서 답답한 마음에 GPT를 통해 질문을 했는데 위 함수에서 return이 빠져있다고 수정해주었습니다. 아래는 GPT가 수정해준 코드입니다.const getFilteredData = () => { if(search === ""){ return todos; } return todos.filter((todo) => { return todo.content.toLowerCase().includes(search.toLowerCase()) }); };위 코드를 보시면 filter() 안에 화살표 함수 내부에 return이 추가된 것을 볼 수 있습니다. 그리고 실제로 이렇게 수정을 하고서야 제 기능이 정상적으로 작동이 되었습니다. 왜 이런 결과가 생겼는지 궁금합니다. 제가 뭘 잘못했길래 강의와는 다르게 return을 추가해야만 기능이 제대로 구현이 되는지 여쭤보고 싶습니다. 혹시나 제가 찾지 못하는 오타가 있을까 해서 강의와 똑같이 따라한 전체 List.jsx 코드도 함께 첨부하겠습니다. 감사합니다!import './List.css'; import TodoItem from "./TodoItem"; import {useState} from "react"; const List = ({todos}) => { const [search, setSearch] = useState(""); const onChangeSearch = (e) => { setSearch(e.target.value); }; const getFilteredData = () => { if(search === ""){ return todos; } return todos.filter((todo) => { todo.content.toLowerCase().includes(search.toLowerCase()) }); }; const filteredTodos = getFilteredData(); return <div className="List"> <h4>Todo List 🌱</h4> <input value={search} onChange={onChangeSearch} placeholder="검색어를 입력하세요" /> <div className = "todos_wrapper"> {filteredTodos.map((todo) => { return <TodoItem key={todo.id} {...todo}/>; })} </div> </div> } export default List;
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
SearchResult 인수 타입 적용
search 페이지에서 아래 처럼 SearchResult 함수로 빼준 경우, searchParams의 타입을 어떻게 해야 하나요?async function SearchResult({ searchParams }: { searchParams: Promise<T> }) { await delay(1500); const { q } = await searchParams; const response = await fetch( `${process.env.NEXT_PUBLIC_API_SERVER_URL}/book/search?q=${q}`, { cache: "force-cache" } ); if (!response.ok) { return <div>오류가 발생했습니다.</div>; } const books: BookData[] = await response.json(); return ( <div> {books.map((book) => ( <BookItem key={book.id} {...book} /> ))} </div> ); }
-
미해결손에 익는 Next.js - 블로그 만들기
초반부 pnpm dev 후 발생하는 에러
초기에 pnpm으로 example 다운받고pnpm dev로 실행 후기능을 사용해보면, 블로그의 글을 클릭하면 아래처럼 에러가 나오는데이유와 해결방법이 어떻게 되나요? 아래는 명령창에 나오는 에러입니다.Error: Route "/blog/[slug]" used `params.slug`. `params` should be awaited before using its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis at eval (app\blog\[slug]\page.tsx:55:70) at Array.find (<anonymous>) at Blog (app\blog\[slug]\page.tsx:55:34) 53 | 54 | export default async function Blog({ params }) { > 55 | let post = await getBlogPosts().find((post) => post.slug === params.slug); | ^ 56 | if (!post) { 57 | notFound(); // ?룷?뒪?듃媛� ?뾾?쑝硫? 404 ?럹?씠吏�瑜? 諛섑솚 58 | } 殊? [Error: A React Element from an older version of React was rendered. This is not supported. It can happen if: - Multiple copies of the "react" package is used. - A library pre-bundled an old copy of "react" or "react/jsx-runtime". - A compiler tries to "inline" JSX instead of using the runtime.] { digest: '685037146' } Error: Route "/blog/[slug]" used `params.slug`. `params` should be awaited before using its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis at eval (app\blog\[slug]\page.tsx:15:64) at Array.find (<anonymous>) at Module.generateMetadata (app\blog\[slug]\page.tsx:15:28) 13 | 14 | export function generateMetadata({ params }) { > 15 | let post = getBlogPosts().find((post) => post.slug === params.slug) | ^ 16 | if (!post) { 17 | return 18 | }
주간 인기글
순위 정보를
불러오고 있어요