결제하기 버튼 누른후 주문탭 바로 갱신
294
작성한 질문수 14
안녕하세요. 정말 좋은강의 감사드립니다. 제가 지금 첫번째로 듣고있는중이라 정확히 모든걸 이해하면서 듣진 못하고있는데 장바구니에서 결제하기 눌러서 결제 완료하고 주문탭가면 방금 주문한 내역이 반영되지 않고 리프레쉬한번 해야 반영이 되는데 리프레쉬 안하고 바로 주문탭에 반영시키는 방법 생각해보다가 그냥
basket_screen.dart에서 결제하기 버튼을 눌렀을때
onPressed: () async {
final resp = await ref.read(orderProvider.notifier).postOrder();
if(resp){
await ref.read(orderProvider.notifier).paginate(forceRefetch:true);
context.goNamed(OrderDoneScreen.routeName);
}else{
ScaffoldMessenget.of~~
}
}
위와 같은식으로 그냥 버튼 누르고 바로 paginate(forceRefetch:true);을 통해 강제로 데이터 한번 갱신해버리는식으로 했는데 이렇게하면 안좋은게 있을까요..? 만약 안좋다면 어떤식으로 해야 주문탭에 바로 반영이 되게 할 수 있을까요 ㅜㅜ 주문탭에 옵티미스틱 리스폰스 코드를 어떻게 만들어서 어디에 적용시켜야할지 잘 모르겠습니다 ㅜㅜ
답변 3
0
void initState() {
super.initState();
ref.read(orderProvider.notifier).paginate(forceRefetch: true);
}제가 원했던 기능이네요ㅎㅎ 좋은 질문 해주셔서 감사합니다.
저는 위와 코드와 같이 order screen 위젯을 StatefulWidget으로 변경하고 initState에서 새로고침을 실행하는 방법을 사용했습니다. 이게 더 일반화하는 방법인 것 같아서요.
0
안녕하세요!
상관은 없습니다.
또는 주문탭으로 이동 할때마다 refresh가 되도록 하면 됩니다.
예를들어서 Tab을 제어하는 컨트롤러에 같은 코드를 넣어주신다면 리프레시가 됩니다.
감사합니다!
0
안녕하세요, 인프런 AI 인턴입니다.
khs50851님의 질문은 Flutter 앱에서 장바구니의 “결제하기” 버튼을 누른 후, 주문이 완료되고 바로 주문 탭에서 최신 주문 내역을 반영하는 방법에 관한 것으로 보입니다. 이와 유사한 상황을 다룬 기존 질문이 있어 이를 참고해 드릴 수 있습니다.
해당 문제 해결을 위한 가이드를 다룬 질문들 중 하나는 “orderProvider 관련 질문이 있습니다.” 입니다. 이 답변에서는 주문 후 바로 주문 탭에서 최신 리스트를 볼 수 있도록 orderProvider의 상태를 업데이트하는 방법을 설명하고 있습니다. 고민하신 방법과 유사하게 postOrder 함수를 호출한 후 paginate() 함수를 호출하여 상태를 갱신하는 예시도 제시되어 있습니다.
상세 내용으로는, 코스 강사께서는 orderProvider의 상태를 직접 갱신하는 것이 맞다고 하며, paginate()를 다시 실행하는 것보다는 최적의 응답 즉, optimistic response를 처리하는 것처럼 메모리에 데이터를 직접 넣어주는 방법을 제안하고 있습니다. 이는 효율적 리소스 활용 측면에서 권장된 방법이기도 합니다.
이 외에도 “주문페이지 리프레쉬 인디케이터 문제” 라는 질문에 대한 답변에서 비슷한 상황을 다루고 있으며, 이 경우 강사께서는 forcerRefetch: true를 주입하여 새로 고침의 필요성에 대해 논의하고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
Isar 마지막 업데이트는 2년전입니다.
0
30
0
FlutterSecureStorage 질문
0
31
0
Dio onError Interceptor 만드는 부분에 질문이 있습니다.
0
78
2
관리자 기능에 대한 질문
0
100
2
part 'restaurant_model.g.dart';
0
92
1
36강. dio 인터셉터에 storage를 전달하는 코드가 이해 안되는데요. 도움 부탁드립니다.
0
56
2
2번 반환 상황 관련 질문
0
61
2
riverpod 3.0
0
139
2
Asset folder??
0
82
2
디자이너와 협업 시 프레임 크기 설정 관련 질문
0
113
2
FutureProvider, StateNotifierProvider 선택 기준
0
70
2
컴포넌트 모델화
0
64
2
쿼리 파라미터
0
84
2
화면 안보임
0
67
2
PaginationListView
0
53
1
강의중 37.Dio onErrorInterceptor 작업하기 dio 관련 질문입니다.
0
101
2
프로토타입이미지
0
62
2
여러 객체를 상태 관리하는 방법에 대한 질문
0
84
2
장바구니 결제하기 응답이 500이 옵니다.
0
105
2
removeFromBasket에서 await patchBasket()을 마지막에 하면 에러나는거 아닌가요?
0
67
2
이 두가지는 완전히 동일한 기능인가요?
0
106
3
내부 코드를 작성하지 않은 CursorPaginationLoading가 어떻게 로딩상태를 갖는지 잘 모르겠습니다...
0
77
2
_SplashScreenState에서 storage를 late로 호출해서 한번만 불러와도 되나요?
0
86
2
코딩 작성 순서 관련 질문
0
88
2





