inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

redirect와 refresh 질문드려요

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

안녕하세요 선생님 ^^ 강의 듣고 있는중에 궁금한 것이 생겼습니다 1)gorouter 7버전에서듣고(4버전 건너뛰고) -> 프로젝트에 적용하기 단원보고 있는데요 갑자기 refresh라는 개념이 나와서요 7버전에서는 없었는데 .... refresh라는 기능 없이도 충분히 만들수 있나요? 아니면 7버전에서 refresh비슷한 기능이 있나요?? 2)redirect를 통해 이동한 페이지는 Appbar에서 뒤로가기가 없던데 이것이 redirect 특징인 건가요? 3)redirect를 사용해서 뒤로가기버튼이 없는 상태에, 만약에 context.pop을 하게 된다면 어디로 이동하게 되나요?

  • flutter
  • 하이브리드-앱
유하 댓글 1 좋아요 0 조회수 181

강의 질문입니다.

미해결

처음하는 플러터(Flutter) 기초부터 실전까지 [풀스택 Part4] (쉽고 견고하게 단계별로 다양한 프로젝트까지)

Flutter와 Firebase/Firestore 까지 활용한 그럴듯한 서비스 만들어보기 6까지 실습해봤는데요. TextButton >> addEntryWithAutoGeneratedId를 통해서 Task를 추가하면 id가 ''로 해서 나오는 것을 Firebase 사이트를 통해서 확인을 했고 UpdateEntryWithId에 의해서 수정을 하게 되면 그때는 id가 등록된 것이 Firebase에서 확인을 했습니다. Add를 할때는 id가 ''으로 저장되는게 맞나요? 제가 코드를 잘못 따라한건지 궁금합니다.

  • flutter
  • firebase
  • dart
  • frontend
  • firestore
이근삼 댓글 2 좋아요 0 조회수 250

WebView Url 호출안되시는 분들은

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

import 'package:flutter/material.dart'; import 'package:webview_flutter/webview_flutter.dart'; class HomeScreen extends StatelessWidget { final homeUrl = Uri.parse('https://blog.codefactory.ai'); final WebViewController controller = WebViewController(); HomeScreen({super.key}) { controller.loadRequest(Uri.parse('https://blog.codefactory.ai')); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Blug App Bar'), centerTitle: true, backgroundColor: Colors.orange, ), body: WebViewWidget( controller: controller, ), ); } } 이렇게하시면 됩니당

  • flutter
  • 클론코딩
김지언 댓글 1 좋아요 2 조회수 389

default.tsx를 넣는대신 modal의 타입을 ?로 하면안되나요?

미해결

Next + React Query로 SNS 서비스 만들기

modal이 없는 상황의 오류를 해결하기위해 제로초님이 default.tsx라는 파일을 소개해줬는데요, 그냥 layout.tsx에서 애초에 Probs를 정의할때 type Probs= modal?:reactNode로 하면 안될까요?

  • react
  • next.js
  • react-query
  • next-auth
  • msw
김창훈 댓글 1 좋아요 0 조회수 248

수강 기간이 존재하는데...

해결됨

Flutter 앱 개발 기초

제가 이거 수강기간이 존재하는 것을 모르고 구매하고 지금 아직 듣지 못한 상태인데 2개월이 남았더라구요. 수강기간이 끝나면 이 강좌는 닫히고 들으려면 재구매를 해야되는건가요?? 제 다른 구매 강좌들은 다 수강기간이 무제한이어서 제대로 안보고 구매했네요

  • flutter
nnnyyy 댓글 2 좋아요 1 조회수 259

msw patch

미해결

Next + React Query로 SNS 서비스 만들기

안녕하세요 msw patch 관련해서 여쭤보고싶은게 있습니다! 제로초님 강의를 응용해서 프로젝트에 msw로 데이터들을 테스트 하고있습니다 handler에서 /users란 엔드포인트로 get요청후 데이터들을 받아온뒤 다시 수정이 필요해 patch handler를 생성했습니다. mutation을 통해서 patch 요청은 성공한거같은데 기존의 get으로 받아온 user데이터들을 수정하고 싶다면 어떻게 할수있을지 여쭤보고싶습니다 ! const mutation = useMutation({ mutationFn: async (e: FormEvent) => { e.preventDefault(); const updatedUser = { userId: product.userId, nickName: product.nickName, userFileUrl: product.userFileUrl, techStack: product.techStack, position: product.position, employmentStatus: product.employmentStatus, year: product.year, links: product.links, alarmStatus: product.alarmStatus, content: product.content, softSkill: product.softSkill, }; fetch(`${process.env.NEXT_PUBLIC_BASE_URL}/users`, { method: "PATCH", body: JSON.stringify(updatedUser), }); }, }); import { bypass, http, HttpResponse } from "msw"; import { hotPeople, peoples, users } from "./peopleData"; export const handlers = [ http.get("/peoples/hot/:tag", () => { return HttpResponse.json(hotPeople); }), http.get("/peoples", ({ request, params }) => { return HttpResponse.json(peoples); }), http.get("/users", () => { return HttpResponse.json(users); }), http.patch("/users", async ({ request }) => { return HttpResponse.text("success?"); }), ]; export default handlers;

  • react
  • next.js
  • react-query
  • next-auth
  • msw
댓글 1 좋아요 0 조회수 217

No tests were found

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 위처럼 join_membership하면 체크표시가 뜨고 한글로 작성하면 No tests were found라고 뜨는 이유는 뭔지 궁금합니다

  • java
  • spring
  • mvc
  • spring-boot
xorud0711 댓글 3 좋아요 0 조회수 350

로그인 모달창 새로고침 시 배경 메인 페이지 사라지는 현상

미해결

Next + React Query로 SNS 서비스 만들기

로그인 버튼을 클릭하면 우선 '/login' 주소로 이동했다가 'i/flow/login'으로 이동하기 때문에 이때 '/login'에서 배경이 메인 컴포넌트를 보여줘야 메인 페이지가 바탕이 되고로그인 모달 창을 띄운다는 점은 이해했습니다. 따라서 app/(beforeLogin)/login/page.tsx 에서 Main 컴포넌트를 보여주도록 했습니다. export default function Login() { const router = useRouter(); router.replace("/i/flow/login"); return <Main />; } 문제는 '/i/flow/login' 에서 새로고침하면 모달 창은 그대로지만 배경은 메인 페이지가 아닙니다. 이때 아래와 코드와 같이 따로 Main 컴포넌트를 불러오면 새로고침 시, 배경은 메인 페이지로 잘 나옵니다.그런데 강의와 깃허브 코드를 보니 LoginModal 컴포넌트만 보여주고 있습니다. LoginModal 컴포넌트만 있어도 app/(beforeLogin)/page.tsx에서 Main 컴포넌트를 보여주고 있으므로 app/(beforeLogin)/layout.tsx에서 Main 컴포넌트가 {children}에 할당된다고 생각했습니다. 따라서 아래 코드에서 Main 컴포넌트가 없어도 배경은 메인 페이지가 나온다고 생각했습니다. 아래 코드와 같이 Main 컴포넌트가 있으면 새로고침 시, 메인 페이지가 배경이 되고 그 위에 로그인 모달창이 띄워지지만 Main 컴포넌트가 없으면 새로고침 시, 메인 페이지가 빈 페이지가 나옵니다. 여기서 Main 컴포넌트를 넣어서 해결해도 되는건지 의문이 들었습니다. 아래 코드에서 Main 컴포넌트를 넣지 않으면 Main 페이지가 어떻게 배경으로 보여지는 건지 알고 싶습니다! import LoginModal from "@/app/(beforeLogin)/@modal/(.)i/flow/login/page"; import Main from "@/app/(beforeLogin)/_component/Main"; export default function Page() { return ( <> <LoginModal /> <Main /> </> ); }

  • react
  • next.js
  • react-query
  • next-auth
  • msw
 키키 댓글 1 좋아요 0 조회수 277

전체 회원 다 뜨는거 말고 원하는 아이디만 찾을떄 어떻게해야 할까요?

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] <!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <body> <div class="container"> <form action="/members/find" method="post"> <div class="form-group"> <label for="name">찾기</label> <input type="text" id="name" name="name" placeholder="이름을 입력하세요"> </div> <button type="submit">찾기버튼</button> </form> </div> <!-- /container --> </body> </html> find.html입니다. <!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <body> <div class="container"> <div> <table> <thead> <tr> <th>#</th> <th>이름</th> </tr> </thead> <tbody> <tr th:each="member : ${members}"> <td th:text="${member.id}"></td> <td th:text="${member.name}"></td> </tr> </tbody> </table> </div> </div> <!-- /container --> </body> </html> memberfind.html 입니다 memberController.java 입니다 @GetMapping("members/find") public String find(MemberForm form) { return "members/find"; } @PostMapping("members/find") public String find(Model model) { List<Member> members = memberService.findMembers(); model.addAttribute("members", members); return "members/memberfind"; } } List<Member> members = memberService.findMembers(); 여기 부분을 List<Member> members = memberService.findOne(); 으로 바꾸어야할텐데 ()-> 여기안에 매개변수를 뭘로 해야할까요

  • java
  • spring
  • mvc
  • spring-boot
댓글 1 좋아요 0 조회수 206

DROP 전략과 LATEST 전략의 차이점이 무엇인가요?

미해결

Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부

안녕하세요. 수업 잘 듣고 있습니다~ 백프레셔 전략 중 DROP과 LATEST 전략은 결국 버퍼가 비워질 때까지 Publsiher에서 emit되는 데이터를 제거(drop or discard)하는 것으로 이해했습니다. 버퍼가 비어지는 시점 이후로 emit되는 데이터를 다시 버퍼에 채운다는 점에서 두 전략은 같은 것으로 보입니다. 차이점을 알려주시면 감사하겠습니다~

  • java
  • spring
  • project-reactor
  • webflux
막스 댓글 3 좋아요 3 조회수 675

자바 컴파일 실행이 안 되서 질문 드립니다..

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

같은 패키지 내부에 Test.java 와 BusObject.java 가 있습니다. Test에서 BusObject객체를 만들어서 사용하는 것을 테스트하고자 하는데 다음과 같이 에러가 나옵니다. javac BusObject.java Test.java java BusObject.java Test.java (java BusObject Test 도 동일하게 안 됩니다ㅜㅜ) Error: Could not find or load main class week11.BusObject Caused by: java.lang.ClassNotFoundException: week11.BusObject 뭔가 문제인가요..? 지금까지 컴파일할때 week11.하고 패키지도 붙여보고, -classpath . 도 해봤습니다...

  • java
  • 객체지향
댓글 1 좋아요 0 조회수 208

실무에서 매핑 테이블은 어떻게 활용할 수 있을까요?

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

토이 프로젝트를 진행하던 중 궁금한 내용이 생겨서 질문 드립니다. 과거 Mybatis와 같은 것을 활용해 진행할 때는 코드 매핑 테이블에 코드값 (기본키)과 코드명 이렇게 있고 특정 테이블에서는 이러한 코드 값 키를 들고 있어 서브쿼리를 활용해 코드 명을 가져오는 방식으로 활용했습니다. JPA에서 위 구조를 활용하려면 특정 엔티티에 코드 엔티티를 넣고 서로 연관관계를 걸어 준 후에 fetch join으로 select 하는게 베스트 일까요?

  • java
  • spring
  • spring-boot
  • jpa
ybs1121 댓글 1 좋아요 0 조회수 603

아주 기초적인 질문입니다.

해결됨

Next.js 시작하기(feat. 지도 서비스 개발)

현재 next.js 를 생성시킨후, 서버 start를 시킨후, 화면을 수정하면, 화면이 리로딩되고 있지 않습니다. 계속 새로 빌드를 해야지만, 화면 소스가 바꼈을 경우, 리로딩이 되는건가요?

  • seo
  • next.js
  • vercel
  • csr
  • ssg
  • ssr
이민혜 댓글 1 좋아요 1 조회수 355

동시성 처리 관련 스레드 풀 설정 질문

미해결

@Test @DisplayName("쿠폰 여러 명 발급") void 쿠폰_여러_명_발급() throws InterruptedException { int threadCount = 1000; ExecutorService executorService = Executors.newFixedThreadPool(32); CountDownLatch latch = new CountDownLatch(threadCount); for (int i = 0; i < threadCount; i++) { final int threadNumber = i + 1; Integer key = i; executorService.submit(() -> { try { couponService.issueCoupon(param, usersMap.get(key)); } catch (PessimisticLockingFailureException e) { .... } 쿠폰 발급 동시성 처리 관련해서 테스트 코드 작성 간 궁금한 점이 있어서 질문을 올립니다. 구글링해서 작성해봤는데, 제가 이해하는 게 맞나 싶어서요... Executors.newFixedThreadPool(32) 이렇게 설정해주면, 32 개의 고정된 스레드 풀을 생성한다는 것이고 1,000 명의 유저가 해당 스레드 풀이 나눠서 작업이 수행된다는 것인가요 ? 그러니까 하나의 스레드에서 약 31명의 유저를 담당한다는 뜻일까요 ? 아니면 순차적으로 1,000 명의 유저를 하나의 스레드에 한 명씩 배치하여 작업하는 것이고, 실질적으로 한 순간에 32명의 유저만 작업한다는 뜻일까요 ? ㅠㅠㅠ

  • java
  • spring
  • 멀티스레딩
  • 동시성제어
  • 동시성
오세창 댓글 1 좋아요 1 조회수 319

pinned 확인법

미해결

1시간만에 끝내는 virtual thread in spring boot

https://github.com/openjdk/jdk/pull/17221 이런 내용이 있네요. -Djdk.tracePinnedThreads 보다 JFR 을 권장하는 것 같습니다.

  • java
  • spring-boot
  • 동시성
  • thread
  • virtual-thread
adoda 댓글 3 좋아요 0 조회수 422

에러가 생겨서 질문드립니다

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

에러 내용 W/WindowOnBackDispatcher(25534): OnBackInvokedCallback is not enabled for the application. W/WindowOnBackDispatcher(25534): Set 'android:enableOnBackInvokedCallback="true"' in the application manifest. 증상: 실행시키면 녹색바탕에 codefactory 로고 와 인디케이터 화면이 나오면서 무지 오래 20분 이상 계속 되다가 로그인 화면으로 들어가네요 로그인 화면으로 바로 들어가야 하는데요. 그게 안되고 있습니다. 로그인 화면으로 들어갈 때 첨부한 사진 하단 2줄 메세지가 나오네요 (에러 내용 참조) 검색하면 증상 대처법이 나오는데 따라해도 똑같습니다. 설정 어디를 바꾸면 될거도 같은데 찾지 못하고 있습니다.

  • flutter
  • 하이브리드-앱
cdway 댓글 2 좋아요 0 조회수 1400

영상통화 user가 2명이상일때 함수 적용 방법

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

안녕하세요! 아고라 모바일 + 웹 데모에서 실행을 했을 때, 3명이 들어왔다고 하면 mute 함수들을 써주려면, 어떤식으로 코드를 작동하면 3명이 전부 mute함수를 가질 수 있을까요? 현재 강의는 enableVideo라는 함수로 모바일 + 웹데모 참여자가 두명다 enable 이 되는 것 같은데... 저희 프런트 코드에서 3명에게 모두 mute버튼과 함수를 부여해주려면 어떤식으로 보통 설계가 들어가는지 궁금합니다.

  • flutter
  • 클론코딩
yesman 댓글 2 좋아요 0 조회수 283

이렇게 사용하면 안되나요 ?

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 코드팩토리 디스코드 https://bit.ly/3HzRzUM Flutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다! 3:40 초쯤에 11시라 써진 텍스트 위젯, 이미지 위젯, 보통 이라 써진 텍스트 위젯을 하나 하나 expanded 위젯으로 감싸서 서로 차지하는 공간을 가로로 균등하게 만들어 주고있는데요 그냥 row위젯에 mainAxisAlignment: MainAxisAlignment.spaceBetween, 추가하면 원하는 결과랑 똑같이 나오는거 같은데 이렇게 사용하면 안될까요?? 나중에 다른 작업때문에 저렇게 하는건지 궁금합니다 !! 이게 제가 말하는 방식입니다!!

  • flutter
  • 클론코딩
winwin7200 댓글 1 좋아요 0 조회수 256

BottomNavigationBar 질문

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

검색 방법이 잘못된건지 모르지만 구글에 검색해도 해결법이 나오지않아 질문 올립니다. bottomNavagtionBar: GestureDetector( onTap: (){ Navigator.push(context, MaterialPageRoute(builder: (context) => CommentRegisterScreen( id: widget.id))); }, child: TRoundedContainer( height: 60, backgroundColor: const Color(0xffF8F8FA), padding: const EdgeInsets.all(TSizes.defalutSpace), radius: 0, child: Text( '댓글을 남겨보세요.', style: Theme.of(context).textTheme.bodyMedium!.copyWith(color: Colors.grey), ), ), ), child: SingleChildScrollView( child: Padding( padding: const EdgeInsets.all(TSizes.defalutSpace), child: Column( children: [ const SizedBox(height: TSizes.spaceBtwItems), SizedBox( height: MediaQuery.of(context).size.height, child: Column( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ Expanded( child: PaginationListViewV2( model: state, id: widget.id, provider: commentProvider(widget.id), itemBuilder: <Comment>(_,index,comment){ if(index == 0){ return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ /// 제목 Text(state.title, style: Theme.of(context).textTheme.headlineMedium), const SizedBox(height: TSizes.spaceBtwItems), /// 닉네임 Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ const TRoundedImage( width: 24, height: 24, fit: BoxFit.fill, imageUrl: 'asset/img/no_image.png', borderRadius: 100, ), const SizedBox(width: TSizes.sm), Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( state.creator, style: Theme.of(context).textTheme.bodyLarge, ), ], ), ], ), const SizedBox(height: TSizes.spaceBtwItems), /// 날짜, 좋아요 Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( state.createDate.split("T")[0], style: Theme.of(context).textTheme.bodyMedium!.copyWith(color: Colors.grey), ), GestureDetector( onTap: button.disable==false ? () async { //버튼 비활성화 await button.change(); await check == -1 ? ref.read(communityProvider.notifier).clickFavorite(widget.id) : ref.read(communityProvider.notifier).downFavorite(widget.id); await ref.read(favoriteProvider.notifier).updateFavorites(widget.id); //버튼 활성화 await button.change(); } : null, child: check == -1 ? TRoundedContainer( showBorder: true, padding: const EdgeInsets.all(TSizes.sm), borderColor: Colors.redAccent, radius: 10, child: Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ Text( '좋아요', style: Theme.of(context).textTheme.labelMedium!.copyWith(color: Colors.redAccent), ), const SizedBox(width: TSizes.xs), Text( state.favorite.toString(), style: Theme.of(context).textTheme.labelMedium!.copyWith(color: Colors.redAccent), ), ], ), ) : TRoundedContainer( padding: const EdgeInsets.all(TSizes.sm), backgroundColor: Colors.redAccent, radius: 10, child: Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ child: SizedBox( height: 120, child: ListView.separated( shrinkWrap: true, scrollDirection: Axis.horizontal, itemCount: imgs.length, separatorBuilder: (_, __) { return const SizedBox(width: TSizes.spaceBtwItems / 2); }, itemBuilder: (_, int index) { return TRoundedImage( imageUrl: imgs[index].toString().trim(), width: 120, height: 120, fit: BoxFit.fill, borderRadius: 12.0, isNetworkImage: true, ); }, ), ), ), ], ) : const SizedBox(), const SizedBox(height: TSizes.spaceBtwSections), /// 글 내용 Text( state.content.trim(), style: Theme.of(context).textTheme.bodyMedium!.copyWith(height: 1.5), ), /// 댓글 0이 아닐 경우 Row( children: [ Text('댓글', style: Theme.of(context).textTheme.bodySmall), const SizedBox(width: TSizes.spaceBtwItems / 2), Text(state.commentCnt.toString(), style: Theme.of(context).textTheme.bodySmall), ], ), const SizedBox(height: TSizes.spaceBtwItems), CommentCard( comment:comment, recomments:comment.commentList, board_id: widget.id ) ], ); } return CommentCard( comment:comment, recomments:comment.commentList, board_id: widget.id ); }), ), Container( height: 210 ) ] ), ), // Center(child: Text('첫 댓글을 남겨주세요.', style: Theme.of(context).textTheme.bodySmall)), ], ), ), ), 위 코드와 같이 BottomNavigationBar와 SinglechildScrollView를 같이 사용하고 있습니다. 가장 하단의 Container( height: 210 ) 위 코드를 넣어주지 않을 시 화면 스크롤이 모두 안되고 짤리는 현상이 발생합니다. 혹시 이러한 경험이 있어 해결방법이 있다면 알려주시면 감사하겠습니다.

  • flutter
  • 하이브리드-앱
dlckdals9467 댓글 1 좋아요 0 조회수 228

플러터 내 생성 시 file / directory의 차이

해결됨

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

플러터 내 생성 시 file / directory의 차이가 궁금합니다. 어떨 때는 New에서 file을 생성하고 어떨 때는 directory를 생성해서요~

  • flutter
  • 클론코딩
DI 댓글 1 좋아요 0 조회수 225

인기 태그

인프런 TOP Writers

주간 인기글