목록전체 글 (364)
seong
내 정보보기 페이지에서 전문가, 일반유저 둘다 프로필이 기존에는 없는 상태에서 시작한다. 프로필을 등록하려고 할때 프로필이 있다면 -> 프로필 Detail페이지 프로필이 없다면 -> 프로필 Insert페이지로 이동을 해야한다. 이동하는 메서드 - 서버에서 화면을 그리는 데이터를 전송 받을 때 profile이 있다면 1 없다면 0 을 리턴하도록 했다. - 프로필 이동할 때 아래의 함수를 실행 시켜 있다면 프로필 수정, 없다면 등록으로 이동하도록 했다. Service ViewModel - id값이 필요하기 때문에 family를 사용해 가져왔다.
Dismissible 관련 공부 - https://seong9566.tistory.com/253 ListTile로 작성 , 채팅방 삭제는 Dismissible 효과로 만들어본다! Appbar - 앱바의 Bottom에 검색부분을 작성 Body - 리스트의 갯수는 Item의 길이 만큼 - Dismiss효과로 채팅방 삭제 부분을 만들기 - 효과 발동시 Dialog로 한번더 다시 물어보기 결과 화면
ProfileUpdateReqDto의 toJson Controller - 프로필을 업데이트하고난 이후 성공을 하면 View를 업데이트 해준다. - 만약 유저의 상태가 일반 유저라면 일반 유저의 ViewModel을 새로 초기화, 전문가 상태라면 전문가의 ViewModel를 다시 초기화 시켜주었다. ViewModel
수정 페이지도 등록 페이지와 똑같은 생김새이다. 그래서 코드는 똑같은 구조를 사용하지만, 이동할때 값만 넘겨주는 부분만 신경써서 해주어야한다. 이 페이지에서 반복적으로 사용될 TextField Detail페이지에서 Update폼으로 넘어갈때 버튼 - Detail페이지의 모델을 전달하지만, 업데이트 폼에 대해 필요한 정보만을 가지고 전달하는 객체를 만들어서 전달해주었다. - 버튼 이동할 때 라우터 설계를 했지만 파라미터를 넘겨주어야 해서 MaterialPageRoute를 사용했다. 업데이트 폼에서 오래 걸렸던 상태값 - DetailPage에서 가져온 기존 값들을 Build아래에서 초기화를 해주고, TextController에 넣어서 기존의 값들을 View에 보여주었었다. - 이 방식으로 진행 했을때 이미지..
ProfileReqDto - json타입으로 전달 해야하기 때문에 json형태로 바꿔주는 작업 Controller - Insert를 하고 난 이후 pop해서 이전 페이지로 간다. 이때 화면의 Stack관리를 해주어야한다 (단순 Push를 하면 BottomNavigator Bar가 사라지기 때문에 pop으로 빠져나갔다.) - Insert가 성공하고 난 이후 세션에 있는 role값을 통해서 View를 다시 그려주었다. Service
기본적인 등록 페이지 구조이다. 아이디는 readonly로 해준다 InsertPage의 구조 - 입력 폼은 위젯으로 따로 빼서 Form으로 관리를 한다. - 폼은 회원가입, 로그인과 똑같다. 이미지 관련 부분 - 삼항 연산자를 사용해 이미지가 선택 되었다면 해당 이미지를 띄워주고 그게 아니라면 기본 이미지를 띄워주었다 이미지 띄워주는 실행 함수 - ImagePicker 라이브러리를 사용해주었다. - IOS는 갤러리에서 가져오기 위해서 권한을 추가해주어야 한다. (안해주면 버튼 클릭시 에뮬레이터 꺼진다.) - https://seong9566.tistory.com/269 - 이미지가 선택 되면 setState로 선택된 이미지로 다시 그려준다. - 이미지를 인코딩해서 전달해준다. - 이미지 선택 버튼
Controller - 업데이트를 하면 세션에 유저 정보도 업데이트가 되어야 하기 때문에 성공하면 한번 초기화 시켜주었다. - 업데이트가 완료 되었다면 pop으로 업데이트 페이지의 Stack를 지우고 이전페이지로 간다. - 업데이트는 jwtToken값도 서버로 전달 해주어야 한다 이 부분은 어차피 세션에 있는 값으로 하기도 하고, 여러 메서드가 필요할 수 있어서 HttpConnector에서 모두 진행했다. Service HttpConnector
회원가입 페이지와 비슷하게 구성하지만, 다른점은 아래에 버튼이 생성된다. Build - Controller은 Provider이다, 그래서 사용하기 위해서 Consumer위젯으로 바꾸었다. - 입력창을 띄웠을 때 OverFlow가 발생한다. SingleChildSrcollerView로 감싸주어서 해결했다. - main을 보았을때 보기 쉽기 위해서 메서드를 많이 사용했다, -> 이렇게 사용했을때 메서드의 재활용이 필요하다면 사용이 가능하다. - update도 폼으로 관리를 하는데 여기서 기존의 데이터가 필요하기 때문에 파라미터로 넘겨주었다. Update는 TextField의 반복이라서 메서드로 빼주고 사용했다. 수정 완료 버튼 - 버튼을 누르면 Controller로 요청을 수정 요청을 해 진행하게 된다. ..