묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
order_repository에러
팩토님 코드랑 똑같이 복붙해봤는데도 에러가뜨네여
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
g.dart 파일
visual studio에서는 숨기는방법 없나여?
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
refreshToken 활용한 로그인 로직에 대한 궁금증
안녕하세요. jwt를 발급할 때 refresh와 aceess 토큰에 담긴 페이로드는 동일할까요 ?accessToken의 탈취 당했을 때를 대비해서 accessToken의 만료기한 을 짧게두고 refreshToken의 만료기한을 길게 두는 것으로 알고 있는데,refreshToken이 탈취당했을 때 refreshToken으로도 사이트에 인가된다면 굳이 이 두개를 나누는 의미가 없을 것 같은데,,현업에서는 어떠한 식으로 이뤄지는지 궁금합니다..
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
네비게이션바 질문
안녕하세요!강사님께서 구현해주신 메인 화면에서 네비게이션바를 onTap의 controller를 통해 받아오며 화면이 전환되는데,상세화면에 들어간 후에도 하위 탭이 유지되는 기능을 구현하고 싶어 구현중입니다.class _DefaultLayoutState extends State<DefaultLayout> { @override Widget build(BuildContext context) { return Scaffold( backgroundColor: widget.backgroundColor ?? Colors.white, appBar: renderAppBar(), body: widget.child, bottomNavigationBar: NavigationBar(), floatingActionButton: widget.floatingActionButton, ); } NavigationBar() { if(widget.bottomNavigationBar == null) { return BottomNavigationBar( selectedItemColor: PRIMARY_COLOR, unselectedItemColor: BODY_TEXT_COLOR, selectedFontSize: 10, unselectedFontSize: 10, type: BottomNavigationBarType.fixed, onTap: (int index) { Navigator.of(context).push( MaterialPageRoute( builder: (_) => MainBoard(index: 1,), ), ); }, items: [ BottomNavigationBarItem( icon: Icon(Icons.work_history_outlined), label: '1', ), BottomNavigationBarItem( icon: Icon(Icons.attach_money), label: '2', ), BottomNavigationBarItem( icon: Icon(Icons.people_alt), label: '3', ), ], ); } else{ return widget.bottomNavigationBar; } }위의 코드처럼 메인 화면에서 네비게이션바가 null로 전송된다면 디폴트 네비게이션바를 구현하려고 시도하는데,화면이 넘어간 이후, 값을 다른 화면에 넘겨 NavigationBar 탭을 변경시키려고 하고 있습니다.근데, widget.index 형식으로 받아오는 방식으로 이용하면 하위 탭만 선택되었다고 변경이 되고 onTap기능인 TabBarView의 controller 영역인 메인 화면이 변경되지 않는데 혹시 해당 부분은 어떤식으로 event를 줘야하는지 알 수 있을까요?
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
앱 빌드 시 발생하는 오류 메시지는 무었인가요?
PS D:\flutter\ubi> flutter build appbundleFont asset "MaterialIcons-Regular.otf" was tree-shaken, reducing it from 1645184 to 1100 bytes (99.9% reduction). Tree-shaking can be disabled by providing the --no-tree-shake-icons flag when building your app.Running Gradle task 'bundleRelease'... 97.9sGradle build failed to produce an .aab file. It's likely that this file was generated under D:\flutter\ubi\build, but the tool couldn't find it.D:\flutter\ubi\build\app\outputs\bundle\release 에는 파일이 생성되어 있음
-
해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
캐싱에 대하여 궁금한 점이 있습니다.
상품 리스트나 레스토랑 리스트, 레스토랑 상세 정보 등은 캐싱을 이용해서 데이터를 어느정도 저장시키고 로딩을 빠르게 끝낼 수 있도록 하는 것이라고 이해를 했습니다. 그럼 DB에서 값이 바뀐 경우에는 어떻게 해야 되나요?캐싱된 데이터를 가져오게 되면 옛날 값이 아닌가용?
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
계속 결제 실패라고 뜹니다.
안녕하세요, 장바구니에서 결제하기 버튼을 누르면 결제완료 페이지로 절대 안넘어갑니다. 하단에 스낵바로 결제를 실패했습니다. 라는 문구만 뜹니다.실행창에서는 문제없이 데이터를 잘 받아오는 것 같았습니다.뭐를 잘 못 따라했는지 여러번 되짚어 봤으나 다른 걸 못찾겠네요ㅠ 왜 저는 결제완료 창으로 넘어가지 않을까요? 혹시 버전이 달라지며 생긴 문제일까요?
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
user_me_repository.g 에러
토큰이 만료될떄 뜨는거같은데 포스트맨도 토큰 잘 작동하고뜬금없이 이 폴더에서 401에러가 나는지 모르겠네여....똑같이 다른분들이 올린 커뮤니티도 봤지만 이해가 안대네여,,
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
setState 내부, 외부에 명령어를 담을 때의 차이가 궁금합니다.
안녕하세요 go router redirection 강의 듣고 있습니다. onPressed의 setState 내부에 authState = !authState 를 넣거나, authState = !authState 를 실행하고 setState를 하는 방법에 어떤 차이가 있는 지 궁금합니다.모두 겉으로 보기에는 잘 작동하는 것 같은데 무엇을 사용해야 더 효율적인 방법인가요? ElevatedButton( onPressed: () { setState(() { authState = !authState; }); }, child: Text(authState ? 'logout':'login',), ),ElevatedButton( onPressed: () { authState = !authState; setState(() { }); }, child: Text(authState ? 'logout':'login',), ),
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
go Router redirect 에러
The argument type 'String?' can't be assigned to the parameter type 'FutureOr<String?> Function(BuildContext, GoRouterState)?'goRouter 기존 버전에서 7.0으로 바뀌어서 에러가 뜨는거같은데염 ㅠㅠ
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
params 질문
안녕하세요 코드팩토리님 연휴 잘 보내고 계신가요다름이 아니라 GoRoute( path: 'restaurant/:rid', name: RestaurantDetailScreen.routeName, builder: (_,state) => RestaurantDetailScreen( id: state.queryParameters['rid']!, )위의 부분에서 일단 임시로 queryParameters를 사용하고 있지만 현재 params란 키워드가 보이지 않더군요 queryParameters와 pathParameters가 있던데 무얼 사용하는게 좋을까요 감사합니다
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
Pagination 에 parameter를 after, count 에 덧붙여 다른것을 추가 할수 있을까요?
안녕하세요.pagination 을 응용하면서 추가적인 조건이 생겨 parameter를 추가하고 싶습니다. 예를 들어 restaurant 화면에서 별점이 4점 이상인것만 가져오고 싶을때 하기 함수에다 추가해야 될것 같은데 잘 않되고 있습니다. 감사합니다.@GET('/') @Headers({'accessToken': 'true'}) Future<CursorPagination<RestaurantModel>> paginate({ @Queries() PaginationParams? paginationParams = const PaginationParams(), });
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
return에 BasicScreen()인가요?
안녕하세요.1분 30초 부터 named 페이지를 설정해 주시는데 새로운 GoRoute를 만들고 path와 name은 named와 관련된 것으로 해주셨습니다. 그런데 return을 NamedScreen이 아니라 BasicScreen으로 해주셨는데 의도하신건지 궁금해서 질문 남깁니다!
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
Rating pagination
다이나믹 에러가 아닌 저는flutter: DioError [DioErrorType.other]: Invalid argument(s): Unsupported scheme '' in URI //http//127.0.0.1:3000/restaurant/5ac83bfb-f2b5-55f4-be3c-564be3f01a5b/rating/?count=20 이런에러가 나면서 평점 ui가 안보입니다 ,, ㅠㅠ
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
배운내용 정리 질문
안녕하세요 코드팩토리님 배웠던 내용들이 너무 많아 강의를 돌려보면서 보기가 조금 어려운데 출처를 밝히고 블로그에 내용을 기록해도 될까요
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
redirect: authStateProvider._redirectLogic 빨간줄
아래와 같은 코드인데 redirect부분에서 빨간줄이 나는데 뭐가 문제일까요 import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:gorouter_practice/model/user_model.dart'; import 'package:gorouter_practice/screen/login_screen.dart'; import 'package:riverpod/riverpod.dart'; import '../screen/1_screen.dart'; import '../screen/2_screen.dart'; import '../screen/3_screen.dart'; import '../screen/error_screen.dart'; import '../screen/home_screen.dart'; final routerProvider = Provider<GoRouter>((ref){ final authStateProvider = AuthNotifier( ref: ref ); return GoRouter( initialLocation: '/', errorBuilder: (context,state){ return ErrorScreen( error: state.error.toString()); }, // redirect 주소가 잘못됐을때 올바른 주소로 연결 redirect: authStateProvider._redirectLogic, // refresh 새로고침, 상태가 변경할 때마다 redirect실행 refreshListenable: authStateProvider, routes: authStateProvider._routes ); }); class AuthNotifier extends ChangeNotifier{ final Ref ref; AuthNotifier({ required this.ref, }){ ref.listen<UserModel?>( userProvider, (previous, next) { if(previous!=next){ notifyListeners(); } } ); } String? _redirectLogic(GoRouterState state){ //UserModel의 인스턴스 or null final user = ref.read(userProvider); //로그인을 하려는 상태인지(location은 현재 위치를 가져옴) final logginIn = state.location == '/login'; //유저 정보가 없다 - 로그인한 상태가 아니다 // //유저 정보가 없고 //로그인하려는 중이 아니라면 //로그인 페이지로 이동한다. if(user == null){ //로그인을 시도하려는 상태면 null 반환 로그인페이지 위에 로그인페이지가 쌓이는걸 방지하기 위해 return logginIn ? null : '/login'; } //유저 정보가 있는데 //로그인 페이지라면 //홈으로 이동 if(logginIn){ return '/'; } //가려는 페이지로 보내줌 위의 로직은 일종의 필터 역할 return null; } List<GoRoute> get _routes => [ GoRoute( path: '/', builder: (_,state) => HomeScreen(), routes: [ GoRoute( //라우트안에 라우트를 넣으면 슬래시를 안넣어도됨 path: 'one', builder:(_,state) => OneScreen(), routes: [ GoRoute( //http://....../one/two 위의 페이지들이 다 깔림 //라우트안에 라우트를 넣으면 슬래시를 안넣어도됨 path: 'two', builder:(_,state) => TwoScreen(), routes: [ GoRoute( //http://....../one/two/three 위의 페이지들이 다 깔림 //라우트안에 라우트를 넣으면 슬래시를 안넣어도됨 //name으로 이름으로 이동 가능 중복x name: ThreeScreen.routename, path: 'three', builder:(_,state) => ThreeScreen(), ) ] ) ] ), GoRoute(path: '/login',builder: (_,state)=>LoginScreen()) ] ), //http://...../three -> 깔리지 않고 독립적으로 존재 GoRoute( path: '/three', builder:(_,state) => ThreeScreen(), ) ]; } final userProvider = StateNotifierProvider<UserStateNotifier,UserModel?>( (ref) => UserStateNotifier() ); //로그인한 상태면 UserModel 인스턴스 상태로 넣어주기 //로그아웃 상태면 null 상태로 넣어주기 class UserStateNotifier extends StateNotifier<UserModel?>{ UserStateNotifier(): super(null); login({ required String name }){ state = UserModel(name: name); } logout(){ state = null; } }
-
해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
대단하십니다!
node.js 서버는 선생님이 직접 구현하신거에요? ㄷㄷ
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
서버 세팅하는데 질문있습니다.
저도 윈도우의 안드로이드 스튜디오로 선생님의 파일을 다운받아 실행했는데요, 터미널이 동일하게 열리지 않습니다. 그래서 node.js commend를 실행해서 npm i 등을 실행하면 아래와 같은 오류가 발생합니다. 해결책을 모르겠습니다ㅜ
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
[질문] 카테고리별 상품 관리에 관해 중복 상품 문제
안녕하세요,저는 'category'라는 테이블을 생성하여 상품들의 상태를 관리하고 있습니다. 'family'를 통해 'categoryId' 값을 받아서 카테고리별로 상태를 관리하고 있는데 문제가 있어서 질문 드립니다.'categoryId' 값에 '0'을 주면, 카테고리와 상관 없이 모든 상품을 볼 수 있는 리스트를 만들 수 있었습니다. 그러나, 이 방법은 상품이 중복되어 나타나는 문제가 발생합니다.모든 상품을 한번에 받아서 필터로 처리하는 방법도 생각해 보았지만, 상품의 수가 너무 많아 이 방법은 효율적이지 않을 것 같습니다.구글링을 통해 정보를 찾아보고 다른 앱 레퍼런스도 찾아보았지만, 원하는 답변을 얻지 못하여 이렇게 글을 남깁니다. 이 문제에 대해 어떻게 해결할 수 있는지 도움을 주시면 감사하겠습니다.감사합니다.
-
해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
3.10 인스톨 관련
안녕하세요 방금 초급강의에서도 문의 드렸는데 혹시중급강의도 3.10버전에서 호환이 안될까요? ㅠㅠ