작성
·
342
0
안녕하세요, 수업 잘 듣고 있습니다.
다름이 아니라 이번에는 제가 근무지 이동때문에
데스크탑(윈도우)이 아닌 맥북(m1)으로 코딩을 공부하는 중입니다. 현재 가장 최신인 giraffe버전인데,
맥북에서 시뮬레이터로 코딩하면 크롬에서 스웨거도 잘 뜨고, 자동로그인도 잘되어 splashscreen페이지에서 바로 rootTab으로 넘어갑니다. 그런데 그 외의 서버에서 보내오는 이미지나 텍스트 데이터들이 전혀 뜨지 않아 무한 로딩을 합니다ㅠ
그래서 에뮬레이터를 돌려보려고 하니 파일 경로중에 알맞지 않은 문자가 있다는데, 아무리 봐도 '_'(아래바) 제외하고는 전혀 특수문자나 공백은 없습니다.. 에뮬도 안켜지고, 시뮬레이션에 데이터도 안떠서 답답하네요;
도움 구할 곳이 없어 도움 구해봅니다 ㅠ
올 한해도 고생 많으셨고, 해피 크리스마스 입니다^^
답변 2
0
401 에러가 떴었습니다, 분명 postman에서는 값이 제대로 나오고, 스웨거 페이지도 잘 뜨거든요.. 스플레시 화면에서 바로 루트탭화면으로 넘어가는 걸 보면 일단 값이 전달되는것 같은데, 그 이상의 데이터가 안나옵니다; 희한하네요;
또한 어제 집에와서 윈도우 데스크탑에서도 해봤는데, 루트탭까지는 잘 넘어가는데 레스토랑스크린을 future<List> 를 넣고 연결하면 바로 무한 로딩으로 넘어갑니다. 그 정도로 값이 안나오면 머릿속으로 상상하며 코딩을 할 수 밖에 없을텐데요.. 분명 출장가기 전에는 Future 생성 코드를 넣고 리스트뷰세퍼레이트를 해도 UI가 잘 나왔었거든요; 데이터값이 이랬다 저랬다 해서 답답하네요..
0
안녕하세요!
시뮬레이터의 경우 로컬 컴퓨터와 같은 네트워크를 사용하기 때문에 크롬에서의 요청과 시뮬레이터에서의 요청이 완전 같아야합니다.
무한 로딩이 뜬다고 말씀하시는 링크를 크롬에서 실행해보세요.
만약에 이미지가 잘 뜬다면 다른 문제겠지만 크롬에서도 뜨지 않는다면 링크 문제입니다.
확인 부탁드립니다.
메리 크리스마스입니다.
감사합니다!
완전 같은 기능의 코드인데 다른 기능을 실행하게 된다면 다트 언어상의 굉장히 큰 버그입니다. 문제가 되는 코드 전체를 복붙 해보시면 제가 확인 해보도록 하겠습니다.
문제가 되는 코드라고 한다면 계속 앱을 실행할때마다 DioException 401 에러가 뜨기 때문에 스플래시 화면의 코드인 것 같습니다. 그런데 제가 느끼기에 토큰 만료가 가장 큰 이유인것 같은데, 1~2분 안에 재실행 하면 스플래시--> 루트탭 화면으로 바로 갑니다. 그런데 2~3분이 넘어가면 무한 로딩이 됩니다. 그래서 코딩 공부할때 deleteToken()을 한다던지, redirectLogic을 변경하여 로그인화면으로 이동하도록 수정하여 공부하고 있습니다.
로그인을 하면 루트탭으로 이동하거든요,
또한 장바구니에서 '주문하기'버튼도 어떨땐 orderDoneScreen으로 넘어가고 어떤땔 결제실패가 되는데, 이것도 401 오류로 나옵니다(print('$e')를 했더니 null값이 나왔습니다.)
이부분이 가장 잘 모르기 때문에 불편한 문제인 것 같습니다 ㅠ
만약에 token refresh 로직 영상을 보지 않았다면 (dio interceptor) 정상적인 상황입니다. 만약에 이미 적용한 상태에서 문제가 생기신다면 작성하신 리프레시 로직에 버그가 있는걸로 보입니다.
선생님 제가 강의를 처음부터 다시 따라해 보며 해봤는데요, restaurant_screen에 future<List> 코드 넣고, splash에 await storage코드를 넣어도 계속 401에러가 떴었어요, 그래서 chatGPT로 코드 개선해달라고 했는데 일부 개선이 되도록 바꾸어 넣었더니 그때부터는 resp.data 값이 뜨고 factory로 바꾸어도 data값이 나왓어요, 그런데 사실상 chatGPT로 바꾼 코드는 크게 의미가 있는 코드는 아니었어요, 그래서 선생님의 코드로 다시 바꾸어도 값이 전달되고 정상적으로 화면이 구현됐어요,
요약하자면, 아무 문제는 없는 코드인데, 데이터가 전달됐다 안됐다 왔다갔다 하는것 같아요;;;
근데 코드에 문제가 없다면 항상 값이 전달되어야 하는게 맞지 않을까요; 만약 또 다시 값 전달이 안된다면 공부하기가 너무 힘들 것 같아요ㅠ 어쨌든, 이건 해결했습니다!!