inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

섹션 5. React.js 개론 - 구동원리에서 강의와 제 코드가 다릅니다

해결됨

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

안녕하세요 강의 잘 듣고 있습니다 현재 섹션 5. React.js 개론 - 구동원리를 듣고 있는데 import { StrictMode } from 'react' import { createRoot } from 'react-dom/client' import './index.css' import App from './App.jsx' createRoot(document.getElementById('root')).render( <StrictMode> <App /> </StrictMode>, ) 강의에 있는 코드와 제 main.jsx의 코드가 달라서요.. 전부 똑같이 설치했는데 달라도 괜찮은건가요?

  • javascript
  • react
  • node.js
green 댓글 2 좋아요 0 조회수 149

css 코드 작성 영상은 어디에 있나요?

해결됨

한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지

console.log('hello'); 찾아봐도 없는데 아직 영상은 없나요?

  • javascript
  • rest-api
  • spa
  • dom
jwh 댓글 1 좋아요 0 조회수 141

저장 버튼이 생기지 않습니다.

해결됨

아바타 커뮤니티앱 만들기 (React Native Expo)

저장 버튼을 동일하게 작성했는데 화면상에 그려지지 않더라구요. 공식문서도 확인해보고 찾아보는데, isFocused나 useLayoutEffect등을 통해 실험해봐도 저장 버튼이 보이지 않습니다. 무엇을 잘못 작성했나 싶어 자료를 다운로드 받아 post 의 _layout.tsx 와 write.tsx도 복사, 붙여넣기 하여 확인했는데도 저장버튼이 보이지 않았습니다. 그런데, post의 _layout에서 headerRight을 작성하니 보입니다. setOptions가 동작하지 않는 것 같이 보이는데, 원인을 잘 모르겠습니다. 어떻게 해결하면 될까요? import CustomButton from "@/components/CustomButton"; import DescriptionInput from "@/components/DescriptionInput"; import TitleInput from "@/components/TitleInput"; import useCreatePost from "@/hooks/queries/useCreatePost"; import { ImageUri } from "@/types"; import { useNavigation } from "expo-router"; import { useEffect } from "react"; import { FormProvider, useForm } from "react-hook-form"; import { StyleSheet } from "react-native"; import { KeyboardAwareScrollView } from "react-native-keyboard-aware-scroll-view"; type FormValues = { title: string; description: string; imageUris: ImageUri[]; }; export default function PostWriteScreen() { const navigation = useNavigation(); const createPost = useCreatePost(); const postForm = useForm<FormValues>({ defaultValues: { title: "", description: "", imageUris: [], }, }); const onSubmit = (formValues: FormValues) => { createPost.mutate(formValues); }; useEffect(() => { navigation.setOptions({ headerRight: () => ( <CustomButton label="저장" size="medium" variant="standard" onPress={postForm.handleSubmit(onSubmit)} /> ), }); }, []); return ( <FormProvider {...postForm}> <KeyboardAwareScrollView contentContainerStyle={styles.container}> <TitleInput /> <DescriptionInput /> </KeyboardAwareScrollView> </FormProvider> ); } const styles = StyleSheet.create({ container: { margin: 16, gap: 16, }, }); import { colors } from "@/constants"; import { Feather } from "@expo/vector-icons"; import { Link, Stack } from "expo-router"; export default function PostLayout() { return ( <Stack screenOptions={{ headerTintColor: colors.BLACK, contentStyle: { backgroundColor: colors.WHITE, }, }} > <Stack.Screen name="write" options={{ title: "글쓰기", headerShown: true, headerLeft: () => ( <Link href={"/"} replace> <Feather name="arrow-left" size={28} color={"black"} /> </Link> ), }} /> </Stack> ); } +추가로 확인한 부분. app의 _layout.tsx에서 <Stack.Screen name="post" options={{ headerShown: false }} /> 이 친구를 주석하면 헤더가 두 개 나오게 되는데, 숨겨놨던 루트에 저장 버튼이 떠 있더라구요. 이걸 어떻게 수정하면 되는건지.. 어렵네요

  • javascript
  • react
  • react-native
  • typescript
  • react-query
프롱 댓글 2 좋아요 0 조회수 201

[30-01] 웹 에디터와 폼 라이브러리

해결됨

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

안녕하세요 해당수업중 강의 내용대로 했는데 실행시 아래와 같이 에러 뜨고 정상 실행이 안됩니다. TypeError: react_dom_1.default.findDOMNode is not a function at ReactQuill.getEditingArea ( http://localhost:3000/_next/static/chunks/node_modules_5754136c._.js:16760:43 ) at ReactQuill.instantiateEditor ( http://localhost:3000/_next/static/chunks/node_modules_5754136c._.js:16631:50 ) at ReactQuill.componentDidMount ( http://localhost:3000/_next/static/chunks/node_modules_5754136c._.js:16590:14 ) at LoadableComponent ( http://localhost:3000/_next/static/chunks/_2df4111c._.js:296:57 ) at WebEditorPage ( http://localhost:3000/_next/static/chunks/_2df4111c._.js:81:215 ) at ClientPageRoot ( http://localhost:3000/_next/static/chunks/node_modules_next_dist_1a6ee436._.js:2053:50 )

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
Lia 댓글 3 좋아요 0 조회수 234

질문있습니다.

해결됨

한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지

코드 관련 질문은 아래와 같이 '코드블럭' 기능을 이용해주세요! + 오류 메세지도 함께 올려주시면 좋아요 🙂 console.log('hello'); 안녕하세요, 강의 잘 수강하고 있습니다. 궁금한게 있는데, 혹시 vsCode 사용할 때 단축키 설정이나 플러그인 등 추천해주실만한 게 있을까요? 이를테면 괄호()안에 무엇을 누르면 탭을 빠져나오는 단축키가 있다던지 소소한 팁이 있으시다면 공유부탁드리고 싶습니다.

  • javascript
  • rest-api
  • spa
  • dom
별다방 댓글 1 좋아요 0 조회수 70

api폴더 하위의 api.ts들은 언제사용하나요?

해결됨

한 입 크기로 잘라먹는 Next.js

백엔드서버와 통신할 때, service폴더를 만들고 하위에 api 정리를 자주 하였는데요,(fetch, axios instance등) 현재 강의에서 언급하고있는 이 api폴더는 next로 풀스택 개발외에는 딱히 사용되지 않는편인가요?

  • react
  • typescript
  • next.js
  • api
이윤재입니다. 댓글 1 좋아요 0 조회수 197

컴파일 에러

미해결

멀티패러다임 프로그래밍 1편: 반복자 패턴 & LISP (with TypeScript, Clojure, Kotlin)

안녕하세요, 강의 잘 듣구 있습니다. 다름이 아니라 reduce 가 포함된 파일을 컴파일하면 그림과 같은 에러가 납니다. 에러 해결을 위해서 아래 두 가지 방법을 시도해보았습니다. 에러메세지처럼 reduce 함수의 정의에 A extends Acc 로 명시 이 해결방법은 옳지 않은 것 같다고 생각했습니다. (A -> number, Acc -> string 인 경우) else 문에 있는 baseReduce 를 Acc 타입으로 강제 캐스팅 책과 강의 코드 모두 살펴봐도 크게 다른 점이 없는 것 같아 질문드립니다. 감사합니다! (제가 작성한 코드 첨부드립니다) function baseReduce<A, Acc>( f: (acc: Acc, a: A) => Acc, acc: Acc, iterator: Iterator<A> ): Acc { while (true) { const { done, value: a } = iterator.next(); if (done) { break; } acc = f(acc, a); } return acc; } function reduce<A, Acc>(f: (a: A, b: A) => Acc, iterable: Iterable<A>): Acc; function reduce<A, Acc>( f: (acc: Acc, a: A) => Acc, acc: Acc, iterable: Iterable<A> ): Acc; function reduce<A, Acc>( f: (acc: Acc | A, a: A) => Acc, accOrIterable: Acc | Iterable<A>, iterable?: Iterable<A> ): Acc { if (iterable === undefined) { iterable = accOrIterable as Iterable<A>; const iterator = iterable[Symbol.iterator](); const { done, value: acc } = iterator.next(); if (done) { throw new TypeError('reduce of empty iterable with no initial value'); } return baseReduce(f, acc, iterator) as Acc; } else { // 왜 타입변환을 강제해야하는가..?? return baseReduce( f, accOrIterable as Acc, iterable[Symbol.iterator]() ) as Acc; } }

  • javascript
  • 함수형-프로그래밍
  • typescript
  • 객체지향
  • 소프트웨어-설계
  • 멀티-패러다임-프로그래밍
chul kim 댓글 2 좋아요 0 조회수 202

PC 접속 X, 모바일 접속만 가능

해결됨

(2025) MBTI 테스트 기반 수익형 웹사이트 만들기 - <코딩 배워 사업하자>

선생님 안녕하세요! 3시간 전에 서비스를 배포했습니다. 근데 PC 접속이 안되어 cafe24에서 설정한 DNS가 아직 적용이 잘안되어서 서비스 접속이 PC로 안되는줄 알았습니다. 하지만 모바일로 접속하니 접속이 잘만 되더라구요?... 어떻게 이럴수가 있을까요? PC가 안되면 모바일도 안되어야하지 않나요?

  • react
  • aws
  • Google-Analytics
  • cloudflare
  • adsense
  • 수익화
asd 댓글 2 좋아요 0 조회수 212

break와 continue 9:55 내 continue 구문 질문

미해결

[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문

let i = 0; while ( i < 10 ) { i++; if ( i % 2 ===0 ) { continue } console.log(i) } continue 를 만나면 구문이 다음 구문으로 넘어가는건 알겠으나, if 구문만 종료되지 않고 if 구문 밖으로 console.log(i) 도 실행시키지 않는 이유를 잘 모르겠습니다. continue 가 쓰인 가장 큰 함수(?) 여기서는 반복문 전체를 중지시킨다고 보면 될까요?

  • javascript
  • continue
  • loop
kbsuffer4166 댓글 2 좋아요 0 조회수 183

fetchQuery와, invalidateQueries 사용 질문있습니다.

미해결

아바타 커뮤니티앱 만들기 (React Native Expo)

선생님께서는 로그인직후 내 정보불러오기위해서 fetchQuery를쓰셨는데 invalidateQueries 를 써도 되는거아닌가? 무슨차이때문에 그런걸까?를 생각해봤는데 fetchQuery는 즉시 가져오는거기때문에 이후 /이나 뭐 어디다른페이지를가도 로딩이안뜨고 바로 최신상태를 유지하는 반면 invalidateQueries 를 사용하면 기존 쿼리를 scale로 처리해줘서 캐싱무효화를해주고 그 해당 query key를 사용중인 페이지에 들어가면 그때 서버로부터 리페치를 한다? 그렇기때문에 로딩이뜬다. 그래서 여기선 fetchQuery를 사용하신거다로 이해했는데 맞을까요?

  • javascript
  • react
  • react-native
  • typescript
  • react-query
반가우면반갑다고해 댓글 0 좋아요 0 조회수 130

린캔버스 수정1 강의 매개변수에 대해 질문있습니다.

미해결

React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지

안녕하세요 강의 잘 보고 있습니다. 린캔버스 수정1 강의 부분을 보고 있는데 조금씩 점점 어려워 질수록 헷갈리는 부분이 많은데 handleNotesChange 함수의 section, updatedNotes 의 매개변수가 작성이 되었는데 아직 초보자인 제가 이처럼 함수를 작성할 때 매개변수가 필요한지 필요하지 않는지에 대해 잘 모르겠더라구요. 정말 간단한거 예를 들어 삭제기능을 할땐 삭제할 id가 필요하니 id를 매개변수로 받아오고 이러한 부분은 이해를 하지만 지금처럼 조금 복잡해질때 어떤 매개변수가 필요하고 왜 필요한지에 대해 아직 어려운데 이럴때 어떤식으로 공부를 하면 좋을까요?

  • react
  • React-Context
  • react-router
  • tailwindcss
  • react-query
부드러운 족제비 댓글 1 좋아요 0 조회수 96

3-2 에서 안드로이드랑 아이폰 Header쪽 스타일 다르게 주신 이유가있으실까요?

해결됨

아바타 커뮤니티앱 만들기 (React Native Expo)

import { Link, Stack } from 'expo-router'; import Foundation from '@expo/vector-icons/Foundation'; import { colors } from '@/constants'; export default function AuthLayout() { return ( <Stack screenOptions={{ headerTintColor: colors.BLACK, contentStyle: { backgroundColor: colors.WHITE, }, }} > <Stack.Screen name="index" options={{ title: '로그인', headerTitleAlign: 'center', headerShown: true, headerLeft: () => ( <Link href={'/'} replace> <Foundation name="home" size={28} color={'black'} /> </Link> ), }} /> </Stack> ); } 선생님은 Link 태그에 paddingLeft해서 안드로이드 Header에서 조정해주신반면 저는 좀 더 통일성을위해서 headerTitleAlign 을 center로 줬습니다. 이 방법이 더 괜찮아보이는데 어떤지 궁금해요!

  • javascript
  • react
  • react-native
  • typescript
  • react-query
반가우면반갑다고해 댓글 2 좋아요 0 조회수 169

수강 기간 연장 문의

미해결

실습으로 마스터하는 OAuth 2.0: 기본부터 보안 위험까지

안녕하세요. nextjs 몰라서 안듣고 공부하고 들어야지 하다가.. 수강기간 오늘이 마지막이라 허겁지겁 들었습니다. 가능하다면 1~2달 정도만 수강기간을 연장할수 있을까요?? 부탁드립니다..

  • javascript
  • oauth
  • next.js
공부하는이 댓글 1 좋아요 0 조회수 99

Vercel 배포 후 revalidate

해결됨

한 입 크기로 잘라먹는 Next.js

안녕하세요! 2.20 강의를 듣고 Vercel에 배포까지 한 뒤에 궁금한 점이 생겨 질문 드립니다! 이전 강의 실습에서는 인덱스 페이지의 추천 도서를 On-Demand ISR 방식으로 적용한 뒤 직접 주소를 입력해 페이지 요청을 보내서 바꾸었는데 Vercel에 배포한 뒤에는 어떻게 요청을 보내서 추천 도서 목록을 바꿀 수 있나요? 아니면 시간 단위로 업데이트하는 방식으로 다시 바꾸어서 작성한 뒤 재배포하나요?

  • react
  • typescript
  • next.js
고은 댓글 2 좋아요 0 조회수 187

다이나믹 라우트 동작이 먹히지 않습니다 ㅠ

미해결

아바타 커뮤니티앱 만들기 (React Native Expo)

안녕하세요! React Native도 Next.js와 같이 폴더 기반 라우트라 게시글 수정 페이지를 ~/app/post/update/[id].tsx 에 만들었고, 해당 [id] 부분에 동적으로 게시글 id 값을 넣어 라우팅할 수 있게 하였습니다. 또 ~/app/post/_layout.tsx 레이아웃에 Stack.Screen에 등록도 하였구요! 그래서 엑스포 라우터를 import 하여 import { router } from 'expo-router'; 바텀 시트의 수정 버튼 클릭 시, 다음을 호출하였는데요, router.push(`/post/update/${post.id}`); 다음 에러가 납니다... ㅠ Argument of type /post/update/${number} is not assignable to parameter of type 'RelativePathString | ExternalPathString | ... '/post/update/[id]'라는 경로는 인식하는 것으로 보아 엑스포 라우터가 다이나믹 경로를 못 찾는 것 같은데 왜 이런 현상이 발생하는지 모르겠습니다 ㅠ

  • javascript
  • react
  • react-native
  • typescript
  • react-query
Mad Programmer 댓글 2 좋아요 0 조회수 160

강의 자료 다운이 될까요?

미해결

Vue.js 시작하기 - Age of Vue.js

안녕하세요 선생님. 강의 자료 다운로드가 가능할까요?

  • javascript
  • vue.js
sunnnwo 댓글 1 좋아요 0 조회수 158

어려워요 뭔소리죠 대체

미해결

실무 중심! FE 입문자를 위한 React

반복문 뭔 소린지 모르겠어요 뭔가 영상이 짤린 느낌

  • react
  • redux
  • node.js
  • sass
  • swr
민이 댓글 1 좋아요 3 조회수 336

onDelete의 set default 옵션에 대해서 질문드립니다.

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

강의 내용에서 "set default는 테이블에서 no action, cascade, set null, restrict 중 기본으로 설정된 값을 따른다"라고 설명해주셨습니다. 하지만 제가 알고 있는 바로는 "부모 테이블의 row가 삭제될 때, 이를 참조하는 자식 테이블 row의 외래키는 부모 테이블에서 기본값으로 지정된 외래키를 가진다"라고 알고 있습니다. 혹시 typeorm이 실제로 구현하고 있는 내용은 제가 알고 있는 내용과 다른 것일까요...?ㅠㅠ

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
Exodus Jackson 댓글 2 좋아요 0 조회수 163

린캔버스 프로젝트 공부중에 z인덱스 값.

미해결

React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지

선생님 린캔버스 프로젝트를 따라서 공부하고 있는데요. 해더부분에 햄버거 버튼을 클릭하면 나오는 aside 메뉴가 z-9999를 줬는데요 홈에 있는 돋보기가 더 위에서 노출되서요. 홈에 있는 서치 아이콘은 z-0으로 줬거든요 제가 뭘 잘못하고 있을까요 ㅠ

  • react
  • React-Context
  • react-router
  • tailwindcss
  • react-query
전순아 댓글 1 좋아요 0 조회수 77

9분경 진행한, 태그 필터링 관련 서버사이드 변경에 대한 질문

미해결

Next.js 완벽 마스터 (v15): 노션 기반 개발자 블로그 만들기 (with 커서AI)

안녕하세요! 먼저 좋은 강의 감사합니다. 중간쯤, 전체 데이터를 조회해서 Client 측에서 필터링 해서 사용하는게 아닌, 서버로부터 이미 필터링 된 데이터를 받아오도록 검색 api 를 수정한 내용입니다. 이 부분이 클라이언트 사이드 -> 서버 사이드로 변경하였다, 라는 내용을 설명주셨는데, 랜더링과는 전혀 관계 없는 데이터 필터링 주체를 말씀 하시 내용이라고 생각되는데 맞게 이해했는지 궁금합니다. 즉, Notion = 서버, Next.js=클라이언트 관점으로 애기 하신게 맞는지 궁금합니다.

  • react
  • 블로그
  • next.js
  • cursor
  • cursorai
BeakGwa 댓글 1 좋아요 0 조회수 124

인기 태그

인프런 TOP Writers

주간 인기글