아래 코드를 구글 맵에 넣으면 동작 gestureRecognizers: { Factory( () => EagerGestureRecognizer() ) }, 테스트 코드 참고 How to avoid scrolling ListView when scrolling in map (MapBox) within ListView When I swipe my map sometimes it is leading to scroll of ListView, so I would like to discover optimal solution for this situation. I am using flutter_map package and it has no gestureRecognizers stackoverflow.com
과정 스킵 Navigator를 여러개를 쓰고있는 상태이다. 하위 Navigator에서 showDialog를 이용해 AlertDialog를 띄우는 상황에 action을 이용해 dialog와 dialog를 띄운 페이지를 pop을 하기위해 popUntil을 이용했다. (참고로 popUntil로 이동할 route의 이름은 route엔 존재하지 않음) 그리고 테스트를 하는데 화면이 갑자기 검게 변했다. 이 상태에서 핫 리로드를 수행해보면 아래와 같은 에러가 발생한다. 모든 화면이 pop되어 없는 상태여서 발생한 에러이다. context를 통해 가까운 Navigator를 찾아 pop을 한다면 발생하지 않을 에러인데 발생해 이해할 수 없었다. 하위 Navigator의 initialRoute가 루트와 달라 아래 코드..
MultipartRequest는 일반적인 get, post 함수로 통신하면 결과로 Response타입의 데이터를 주는 것과 달리 결과로 StreamedResponse타입의 데이터를 뱉는다. 이를 Response클래스 내의 fromStream함수를 이용해 StreamedResponse를 Response로 변경하면 get, post 등의 결과처럼 처리 가능하다. // request -> MultipartRequest request; final streamedResponse = await request.send(); final result = await http.Response.fromStream(streamedResponse); 참고 How to get response body with request.sen..
문제점 이미지 파일을 2개 이상 전송했는데 multer().single함수를 사용하여 발생 해결방법 single대신 array함수를 사용한다. multer().array(fieldName, maxCount) 첫번째 인자로는 single의 인자와 똑같이 전송시에 정해둔 fieldName 두번째 인자로는 전송할 이미지의 최대 개수 두 인자를 주면 된다. 참고로 single함수를 사용하면 file의 정보는 req.file로 하나의 정보만 볼 수 있는데 array함수를 사용하면 req.files에 리스트로 담겨있는 것을 볼 수 있다.
flutter에서 express서버로 image를 전송한 뒤 multer 미들웨어를 통해 받을 때 위 에러가 발생했다. 위 에러가 발생하면 서버가 종료되었다가 다시 실행되어 flutter에선 아래 에러를 뱉어낸다. Unhandled Exception: Connection closed before full header was received 통신이 다 끝나기도 전에 서버가 재시작되어 발생한다고 볼 수 있다. 문제점 const storage = multer.diskStorage({ destination: (req, file, callback) => { callback(null, __dirname + '/target/dir'); }, filename: (req, file, callback) => { callb..
Container위젯의 decoration에서 BoxDecoration을 통해 원하는대로 꾸민 뒤 Row나 Column위젯을 child로 넣으면 된다. Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), color: Colors.lightBlue, ), child: ... ) Row나 Column의 자식 위젯의 constraints 문제로 인해 RenderBox was not laid out에러가 발생할 경우 Container에 width와 height를 지정해주거나 Expanded와 같은 크기를 지정해주는 위젯으로 감싸 해결할 수 있다. 전체 코드 참고 How to make the background of Text..
Navigator클래스 내의 static인 popUntil과 NavigatorState클래스의 멤버 함수 두 개가 있다. 그 중 static인 함수는 첫번째 매개변수의 BuildContext를 통해 NavigatorState를 찾은 뒤에 NavigatorState클래스의 popUntil을 호출하도록 되어있다. 콜백 함수의 반환 값이 true일 때 pop을 그만하도록 구현되어있다. 예시 내가 유용하게 쓴 곳은 BottomNavigationBar를 두고 각 탭별로 NavigatorState를 가지고 있게 한 상황이였다. 게시판이라는 탭이 있으면 게시판에서 어떤 글을 보고 있을 때 같은 탭인 게시판을 누르면 게시판 탭의 메인 화면으로 이동하도록 했고 이미 메인 탭일 땐 아무런일도 일어나지 않도록 구현했었다. ..