inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

코팩님 카톡 보고 질문 드립니다 (키키아빠) 로그인 로직 관련입니다.

미해결

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

https://creative-mulberry-987.notion.site/d7d8c7b88276435cb205429289974c6d?pvs=4 코팩님 키키아빠입니다. 코드 올려 두었습니다. 인프런 게시판 이용이 미숙해서 노션에 올렸습니다.

  • flutter
  • 하이브리드-앱
박진혁 댓글 1 좋아요 0 조회수 352

32강 질문 있습니다.

미해결

Flutter 중급 1편 - 클린 아키텍처

Navigator.push 에서 리턴받는 불리언값은 어떻게 정해지는것인가요? editnote init()에서 navigator.pop(context, true)에서 넘겨준 트루를 리턴받는 것인가요? 저는 이렇게 이해 했습니다. 노트스크린(홈)에서 화면 푸시를 하면 edit페이지로 이동하고 스트림으로 save 노트 이벤트를 상시 대기하다가 이벤트가 발생하면 true값과 동시에 pop을 하고 노트스크린(홈)에서 isSave에 pop에서 넘겨준 true를 리턴받고 if(isSaved !=null && isSaved){ viewModel.onEvent(NotesEvent.loadNotes()); } 을 수행하여 홈을 리로드하여 새로운 데이터를 받아주는것이라고 생각했습니다. 이게 맞을까요? 이렇게되면 홈에서의 await Navigator.push()는 다음페이지에서 넘어갔다가 pop되는 것을 기다리는 await인가요? 아니면 무엇인가요?

  • flutter
  • ios
  • android
yungjoon2 댓글 1 좋아요 0 조회수 309

RestaurantRepository 생성에서 (String baseUrl} 변경

미해결

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

factory RestaurantRepository(Dio dio, {String url}) = _RestaurantRepository; 이런식으로 baseUrl 대신 url을 넣으면, 에러가 발생하는데요. g.dart 파일을 지우고 다시 pub run을 해봐도, 동일하게 baseUrl로 생성이 되더라구요. 그러면서, 에러가 나오는데, 변경이 안되는 이유가 있나요?

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

저는 파란색 동그라미 안으로 안들어 옵니다.

미해결

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

파란색 동그라미 안쪽으로 안들어 옵니다. 강사분꺼와 달라서

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

[Restaurant Pagination 요청해보기]에서 토큰값을 갱신하게 넣었는데도, 401에러가 나옵니다

미해결

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

void checkToken() async { final refreshToken = await storage.read(key: REFRESH_TOKEN_KEY); final accessToken = await storage.read(key: ACCESS_TOKEN_KEY); final dio = Dio(); try { final resp = await dio.post('http://$ip/auth/token', options: Options( headers: { 'authorization': 'Bearer $refreshToken', }, ), ); await storage.write(key: ACCESS_TOKEN_KEY, value: resp.data['accessToken']); Navigator.of(context).pushAndRemoveUntil( MaterialPageRoute( builder: (_) => RootTab(), ), (route) => false, ); } catch(e) { Navigator.of(context).pushAndRemoveUntil( MaterialPageRoute( builder: (_) => LoginScreen(), ), (route) => false, ); } } [Restaurant Pagination 요청해보기] 내용 중에 accessToken이 갱신이 안되서 401 에러가 난다고 하시고, 갱신하는 코드를 넣어서 잘 된다고 하셨는데, 저는 여전히 401 에러가 나옵니다. DioError [DioErrorType.response]: Http status error [401] 에러가 자세하게 나오질 않아서 무슨 에러인지 알수가 없네요. 어떤 문제인가요?

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

혹시 전체 프로젝트 최종 코드도 깃허브 레퍼지토리가 있을까요?

미해결

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

안녕하세요. 수준 높은 강의 너무 잘 보고 있습니다. 혹시 전체 프로젝트 최종 코드도 깃허브 레퍼지토리가 있을까요? 새로운 프로젝트로 연습 할 때 최종 코드를 참고해가면서 복습하고 싶은데 각 챕터별 보일러 프로젝트만 있는 것 같아서요.

  • flutter
  • 하이브리드-앱
Black Wicked 댓글 1 좋아요 0 조회수 299

Querydsl SQLExpressions에 listagg 관련 질문

미해결

안녕하세요, 김영한 님. Querydsl SQLExpressions에 listagg 관련하여 질문이 있습니다. 현재 Projections.constructoer 방식으로 조회한 결과를 Dto로 받고있는데요, SQLExpressions.listagg(컬럼, ",").withinGroup().orderBy(컬럼).getValue().as("listaggs") 로 select후 Dto에서 String으로 못받는데 String으로 받으려면 어떻게 해야 될까요? 방법이 없는걸까요? 이미 같은 질문을 남긴 글이 있는데 미해결 상태라 다시 한번 글 올려 봅니다. 이방법을 사용하는 이유는 A 테이블, B 테이블이 있는데 1:N의 관계 입니다) A테이블 조회시 Response에는 B테이블의 컬럼 하나도 추가로 목록에 보여줘야 하는데 그럴때 B테이블의 해당 컬럼의 값이 다른 데이터가 2개 이상일시 A정보가 2건이 나오게 되서 (페이징 처리시에도 총 카운트와 페이징 처리가 제대로 되지 않습니다.) 한 row로 보여지게 하기 위해 사용하려 Querydsl SQLExpressions에 listagg 사용하려는데, String으로 받을수가 없더군요... 혹 Querydsl SQLExpressions에 listagg 아니더라도 다른 방법이 있을까요?

  • jpa
  • querydsl
  • java
skyghy3342 댓글 1 좋아요 0 조회수 1027

지도가 안 보입니다

미해결

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

다른 질문에서 답해주시는 api키 활성화도 되어있는것 같고 api키도 제대로 복사해서 붙여넣기 했는 지도가 안나오네요.

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

noteRepository 추상클래스 테스트에 관한 질문입니다.

미해결

Flutter 중급 1편 - 클린 아키텍처

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 클린아키텍쳐를 열심히 학습중인데요 추상클래스(noteRepository)를 만드는 이유가 테스트가 원활하게 가능하게 추상클래스를 만든다고 했는데 그러면 테스트코드를 작성할때 추상클래스(noteRepository)에 대한 테스트와 구현체 클래스(noteRepositoryImpl)에 대한 테스트를 각각 작성하는게 좋은 방법일까요? 그렇다면 추상클래스는 메서드만 정의되어있는 상태인데 어떤방식으로 테스트코드를 작성해야할까요?

  • flutter
  • ios
  • android
김동욱 댓글 2 좋아요 0 조회수 411

android studio에서 hello_world 강의 따라할때 오류 발생

미해결

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

안녕하세요. flutter 강의 에서 android studio 시뮬레이터로 hello_world를 돌렸는데요. 아래와 같이 에러가 출력 됩니다. cache도 지워보고 build.gradle의 코틀린 버전도 올리고 flutter clean, flutter pub get 한 뒤에 재실행 해도 동일한데요. 아래 Command를 실행하면 정상적으로 작업이 되는거 같은데... 뭐가 문제인지 알 수 있을까요? ###Error msg Launching lib\main.dart on sdk gphone64 x86 64 in debug mode... Running Gradle task 'assembleDebug'... √ Built build\app\outputs\flutter-apk\app-debug.apk. ERROR: dump failed because resource androidmanifest.xml not found Failed to extract manifest from APK: ProcessException: The command failed Command: C:\Users\wookheon.lee\AppData\Local\Android\sdk\build-tools\34.0.0\aapt dump xmltree C:\study\hello_world\build\app\outputs\flutter-apk\app-debug.apk AndroidManifest.xml. Exception: Problem building Android application: see above error(s).

  • flutter
  • 클론코딩
이욱현 댓글 2 좋아요 0 조회수 604

floatingActionButton 미출력 문의

미해결

Flutter 초입문 왕초보편

영상의 코드와 다른게 보이지 않으나... (영상의 코드) (제가 작성 한 코드) 플로팅버튼도 보이지 않습니다.... 버튼이 보이지 않더라도 영상상 위치 지점을 클릭했을시 run 쪽에서 클릭 반응도 없구요... 그리고 아까 답변 감사히 보고 앱 바쪽에 backgroundColor: Colors.amber 선언도 했는데 앱바쪽 색상이 안 변합니다. 선언 한 위치가 문제였을까요....? 진짜 생초보라 번거롭게 만들어드리는것 같아서 죄송스럽네요.. 어느 부분이 틀린지 감도 안 잡혀 통채로 올려봅니다. import 'package:flutter/material.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), useMaterial3: true, ), home: const MyHomePage(), ); } } class MyHomePage extends StatefulWidget { const MyHomePage({super.key}); @override State<MyHomePage> createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('홈'), backgroundColor: Colors.amber), body: Center( child: Text( '0', style: TextStyle(color: Colors.red, fontSize: 70), ), ), floatingActionButton: FloatingActionButton( onPressed: () { print('클릭'); }, child: Icon(Icons.add), ), ); } }

  • flutter
  • ios
  • android
  • dart
이동섭 댓글 1 좋아요 0 조회수 274

SliverToBoxAdapter 관련 강의 위치 문의

미해결

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

안녕하세요 코드팩토리님 강의 잘 듣고 있습니다. 다름이 아니라 섹션 23 'CategoryCard 제작하기' 강의에 1:32 쯤에 SliverToBoxAdapter 를 CustomScrollView 강의때 알려 주셨다고 하셨는데. CustomScrollView 강의 4개 다시 봤는데 안보여서요. 제가 못찼는 건지 SliverToBoxAdapte 강의가 목록에서 빠진 건지 확인 부탁 드립니다.

  • flutter
  • 클론코딩
랑프_Langpeu 댓글 1 좋아요 0 조회수 255

영상과 코드가 다르고 구현도 차이가 있습니다.

미해결

Flutter 초입문 왕초보편

안녕하세요 강의 내용상으로는 stful을 입력시 이런 코드가 작성된다고 들었으나 제가 할때는 이런 화면이 나오더라구요 그래서 안드로이드스튜디오가 버전이 다른가 싶어서 3강 윈도우 세팅 영상을 다시 보니 (강사님 영상에는 벌 모양이 나오고 제 pc에서는 캥거루가 나오더라구요) 제목은 플라밍고, 영상은 안드로이드스튜디오 2021.1.1.21 patch 1 버전이라고 하나... 구버전 받는 곳을 찾아서 확인 해보니 안드로이드스튜디오 2021.1.1.21 patch 1 버전도, 플라밍고도 두가지 모두 보이지 않습니다. 코드가 다르다보니 구현중 타이틀 구현이 안되서 어느부분에서 오류가 있나 찾아보기에도 불편함이 있습니다. 실제로 강의 내용 중 appbar 구현을 하는 부분에서도 영상에서는 앱바가 나오나 제가 구현 한 앱에서는 앱바는 나오지 않습니다. 해당 캡쳐본에는 안 나와 있으나 "홈" 글자를 넣는것까지는 구현 됩니다. 어떻게 해야할까요???

  • flutter
  • android
  • dart
이동섭 댓글 1 좋아요 0 조회수 415

deleteUser 관련 질문

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

현재 코드에서는 name을 기준으로 delete를 하는데요, findByName(name)을 이용한 코드에서 DB 안에 같은 이름의 회원이 2명 이상인 경우엔 오류가 생깁니다. 그 이유가 find는 return 개수가 1건이기 때문에 rollback 된다고 생각했습니다. 이 버그를 수정하기 위해서 deleteUser의 파라미터는 Long id 로 수정했는데, 또 안 되더라고요...? findAll을 쓰면 같은 이름을 가진 모든 회원이 삭제될 것 같고... 어떻게 하면 동명이인의 회원 중에서 내가 원하는 한 회원만 삭제할 수 있나요? + 추가 방금 다른 학생분의 질문과 답변을 읽었습니다. 같은 내용의 질문인 것 같네요! 그러면 파라미터를 Long id 로 변경하되, 현재 실습 중인 UI에서도 코드를 수정해야하는 부분이 있기에 삭제가 안 되는 게 맞다고 이해하면 될까요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
alstjs 댓글 1 좋아요 1 조회수 228

죄송합니다. 오늘 마지막 질문 입니다^^;(해결됨)

미해결

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

나름 열심히 따라 갔는데, 또 결제하기 버튼 누르면 결제를 실패했다는 스냅카드만 계속 뜹니다. 그래서 print(e) 를 해서 원인을 물어보니, type 'Null' is not a subtype of type 'String' in type cast 라고 나오는데요, 제가 오류를 못찾는 걸수도 있겠지만, 여러 영상을 다시 뒤로 샅샅이 찾아가며 원인을 찾는데 못찾겠습니다.. 왜 다음 페이지로 넘어가지 않을까요? null값 때문이라면 어떻게 처리를 해야 할까요? // order_provider.dart import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:level2/order/model/post_order_body.dart'; import 'package:level2/user/provider/basket_provider.dart'; import 'package:uuid/uuid.dart'; import '../model/order_model.dart'; import '../repository/order_repository.dart'; final orderProvider = StateNotifierProvider<OrderStateNotifier, List<OrderModel>>( (ref) { final repo = ref.watch(orderRepositoryProvider); return OrderStateNotifier( ref: ref, repository: repo, ); }, ); class OrderStateNotifier extends StateNotifier<List<OrderModel>> { final Ref ref; final OrderRepository repository; OrderStateNotifier({ required this.ref, required this.repository, }) : super([]); Future<bool> postOrder() async { try { final uuid = Uuid(); final id = uuid.v4(); final state = ref.read(basketProvider); final resp = await repository.postOrder( body: PostOrderBody( id: id, products: state .map( (e) => PostOrderBodyProduct( productId: e.product.id, count: e.count, ), ) .toList(), totalPrice: state.fold<int>( 0, (p, n) => p + (n.count * n.product.price), ), createdAt: DateTime.now().toString(), ), ); return true; } catch (e) { print(e); return false; } } } ------------------------------------------------------ 이것도 앱을 지웠다가 다시 까니까 갑자기 되네요; 반복될 가능성도 없진 않지만, 실제로 앱을 구현할 경우 이 문제가 계속 반복될 경우 그때마다 지웠다 다시 깔았다를 반복할 수 없을것 같은데.. 일단 이 문제는 이렇게 해결하고 넘어가기로 하겠습니다.^^;

  • flutter
  • 하이브리드-앱
김지현 댓글 1 좋아요 0 조회수 331

질문이 있습니다 ㅠ(해결됨)

미해결

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

계속 이부분에서 오류가 나는데, 오류 설명이 이렇습니다. 어떻게 해결해야 할까요.. lib/common/provider/go_router.dart:15:24: Error: The argument type 'String? Function(GoRouterState)' can't be assigned to the parameter type 'FutureOr<String?> Function(BuildContext, GoRouterState)?'. - 'GoRouterState' is from 'package:go_router/src/state.dart' ('../../AppData/Local/Pub/Cache/hosted/pub.dev/go_router-12.0.1/lib/src/state.dart'). - 'BuildContext' is from 'package:flutter/src/widgets/framework.dart' ('/C:/src/flutter/packages/flutter/lib/src/widgets/framework.dart'). redirect: provider.redirectLogic, ^ Restarted application in 587ms. ------------------------------------------------------ 위부분의 문제를 redirectLogic을 타고들어가 기존 제너릭 앞에 buildContext context를 넣어주니 오류는 사라졌습니다. 그런데 앱실행 후에 또 다른 문제가 발생했습니다; 화면은 계속 이 상태에 머물러 있고, 에러는 이렇게 뜹니다. 이건 어떻게 해야할까요ㅠㅠ [ERROR:flutter/runtime/dart_vm_ initializer.cc (41)] Unhandled Exception: DioException [bad response]: The request returned an invalid status code of 401. E/flutter (13865): #0 DioMixin.fetch.<anonymous closure> (package:dio/src/dio_mixin.dart:507:7) E/flutter (13865): #1 _RootZone.runUnary (dart:async/zone.dart:1661:54) E/flutter (13865): #2 FutureListener.handleError (dart:async/future impl.dart:174:22) E/flutter (13865): #3 Future._propagateToListeners.handleError (dart:async/future_impl.dart:852:47) E/flutter (13865): #4 Future._propagateToListeners (dart:async/future_impl.dart:873:13) E/flutter (13865): #5 Future._completeError (dart:async/future_impl.dart:649:5) E/flutter (13865): #6 SyncCompleter. completeError (dart:async/future_impl.dart:60:12) E/flutter (13865): #7 Completer.completeError (dart:async/future impl.dart:26:5) E/flutter (13865): #8 Future.any.onError (dart:async/future.dart:620:45) E/flutter (13865): #9 _RootZone.runBinary (dart:async/zone.dart:1666:54) E/flutter (13865): #10 FutureListener.handleError (dart:async/future impl.dart:171:22) E/flutter (13865): #11 Future._propagateToListeners.handleError (dart:async/future_impl.dart:852:47) E/flutter (13865): #12 Future._propagateToListeners (dart:async/future_impl.dart:873:13) E/flutter (13865): #13 Future._completeError (dart:async/future_impl.dart:649:5) E/flutter (13865): #14 Future._asyncCompleteError.<anonymous closure> (dart:async/future_impl.dart:739:7) E/flutter (13865): #15 microtaskLoop (dart:async/schedule microtask.dart:40:21) E/flutter (13865): #16 startMicrotaskLoop (dart:async/schedule microtask.dart:49:5) 일부 서치글을 통해 에뮬레이터 앱을 지우고 새로 여니 로그인화면으로 넘어갔습니다! 이 문제는 해결됐습니다~

  • flutter
  • 하이브리드-앱
김지현 댓글 1 좋아요 0 조회수 641

질문있습니다ㅠ

미해결

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

아래 화면을 구현했습니다. 그런데 재시작을 할 때마다, 아래와 같은 오류가 뜹니다. ======== Exception caught by widgets library ======================================================= The following assertion was thrown while finalizing the widget tree: _PaginationListViewState<IModelWithId>.dispose failed to call super.dispose. dispose() implementations must always call their superclass dispose() method, to ensure that all the resources used by the widget are fully released. When the exception was thrown, this was the stack: #0 StatefulElement.unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:5513:7) #1 StatefulElement.unmount (package:flutter/src/widgets/framework.dart:5520:6) #2 ConsumerStatefulElement.unmount (package:flutter_riverpod/src/consumer.dart:578:11) #3 InactiveElements. unmount (package:flutter/src/widgets/framework.dart:1952:13) #4 InactiveElements. unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1950:7) #5 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5349:14) #6 InactiveElements. unmount (package:flutter/src/widgets/framework.dart:1948:13) #7 InactiveElements. unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1950:7) #8 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5349:14) #9 InactiveElements. unmount (package:flutter/src/widgets/framework.dart:1948:13) #10 InactiveElements. unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1950:7) #11 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6420:14) #12 InactiveElements. unmount (package:flutter/src/widgets/framework.dart:1948:13) #13 InactiveElements. unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1950:7) #14 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6420:14) #15 InactiveElements. unmount (package:flutter/src/widgets/framework.dart:1948:13) #16 InactiveElements. unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1950:7) #17 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5349:14) #18 InactiveElements. unmount (package:flutter/src/widgets/framework.dart:1948:13) #19 InactiveElements. unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1950:7) #20 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5349:14) #21 InactiveElements. unmount (package:flutter/src/widgets/framework.dart:1948:13) #22 InactiveElements. unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1950:7) #23 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5349:14) #24 InactiveElements. unmount (package:flutter/src/widgets/framework.dart:1948:13) #25 InactiveElements. unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1950:7) #26 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5349:14) #27 InactiveElements. unmount (package:flutter/src/widgets/framework.dart:1948:13) #28 InactiveElements. unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1950:7) #29 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5349:14) #30 InactiveElements. unmount (package:flutter/src/widgets/framework.dart:1948:13) #31 ListIterable.forEach (dart:_internal/iterable.dart:39:13) #32 InactiveElements. unmountAll (package:flutter/src/widgets/framework.dart:1961:25) #33 BuildOwner.lockState (package:flutter/src/widgets/framework.dart:2639:15) #34 BuildOwner.finalizeTree (package:flutter/src/widgets/framework.dart:3049:7) #35 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:919:19) #36 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:360:5) #37 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1297:15) #38 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1227:9) #39 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1085:5) #40 _invoke (dart:ui/hooks.dart:170:13) #41 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:401:5) #42 _drawFrame (dart:ui/hooks.dart:140:31)

  • flutter
  • 하이브리드-앱
김지현 댓글 2 좋아요 0 조회수 414

Select 실습에서 질문이요!

미해결

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

Select 실습중에 final state = ref.watch(selectProvider.select((value)=>value.isSpicy)); 해당 코드에서 질문이 있습니다! 불필요한 빌드를 막기위해 특정 변수만 watch를 하면서 특정 부분만 랜더링을 다시 하는 부분으로 제가 이해를 했습니다. 근데 저렇게 할 경우, 변수별로 저렇게 select를 하면 나중에는 코드가 엄청 길어질 수 있을것 같은데, 코드를 가독성 좋게 관리할 수 있는 방법이 혹시 있을까요??

  • flutter
  • 하이브리드-앱
Sprint Inc. 댓글 1 좋아요 0 조회수 269

질문입니다.ㅠ

미해결

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

[ 질문1 ] 7_query_parameter.dart 에서 ~of(context). 다음에 queryParameters가 자동으로 뜨지 않습니다. 6번의 pathPameters는 떠서 구현했는데, 이건 안뜨네요, 그래서 ~.uri.queryParameters로 하니까 떠서 일단 이걸로 선택해봤습니다. 그랬더니 화면이 조금 차이가 있었습니다. 일단 코드입니다. import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:go_router_v7_actual/layout/default_layout.dart'; class QueryParameterScreen extends StatelessWidget { const QueryParameterScreen({super.key}); @override Widget build(BuildContext context) { return DefaultLayout( body: ListView( children: [ Text( 'Query Parameter : ${GoRouterState.of(context).uri.queryParameters}'), // /query_parameter?utm=google&source=123 // /query_parameter?name=codefactory&age=32 ElevatedButton( onPressed: () { context.push( Uri( path: '/query_param', queryParameters: { 'name': 'codefactory', 'age': '32', }, ).toString(), ); }, child: Text( 'Query Parameter', ), ), ], ), ); } } 그리고 이건 화면인데요, title 뒤에 길게 이어진 text가 없습니다.그리고 버튼을 누를때마다 아래와 같은 페이지만 반복적으로 뜹니다. [ 질문2] go nest에서 네비게이션의 selectColor와 실제 선택이 일치하지 않습니다.ㅠㅠ 코드를 여러번 검토하며 뭐가 틀렸는지 수없이 봤는데, 못찾았습니다..

  • flutter
  • 하이브리드-앱
김지현 댓글 2 좋아요 0 조회수 450

53. 입력버튼 validation

미해결

Flutter 초입문 왕초보편

알려주신데로 코드 작성하면 어던 부분이 잘못되었는지 모르겠으나 정상 동작하지 않습니다. (입력 값 모두 입력 시 결과 화면으로 넘어가지 않음.) 인터넷 찾아보고 아래 처럽 바꾸니 정상 동작하는데, 어떤 것이 잘못된 것인지 알려주시면 감사하겠습니다. 동작 코드 if (_formKey.currentState!.validate()) { Navigator.push( context, MaterialPageRoute( builder: (context) => const ResultScreen( height: 175, weight: 1000, ), ), ); } 이상 코드(강의 내용 / 입력값중 빈곳이 있는 경우 결과 화면으로 이동) onPressed: () { if (_formKey.currentState?.validate() ?? false) { return; } Navigator.push( context, MaterialPageRoute( builder: (context) => const ResultScreen( height: 175, weight: 1000, ), ), ); }, 잘못된 곳 설명 부탁 드립니다.

  • flutter
  • ios
  • android
  • dart
빛나는 댓글 1 좋아요 0 조회수 337

인기 태그

인프런 TOP Writers

주간 인기글