배경 이해didUpdateWidget의 역할didUpdateWidget은 부모 위젯이 다시 빌드되면서 자식 위젯에 새로운 데이터(예: a 리스트)를 전달할 때 호출됩니다. 이 메서드는 이전 위젯(oldWidget)과 현재 위젯(widget)을 비교하여 필요한 업데이트를 처리할 수 있게 해줍니다.setState와 위젯 트리 업데이트부모 위젯에서 setState를 호출하면 상태 변수(a)가 변경되고, Flutter는 부모 위젯의 build 메서드를 다시 실행합니다. 이 과정에서 자식 위젯도 새로운 인수(변경된 a)를 받게 됩니다.문제 상황 분석당신의 코드에서:부모 위젯은 List a를 상태로 가지고 있고, setState를 통해 a의 값을 변경합니다.자식 위젯은 부모로부터 a를 인수로 받아 사용합니다.did..
깔끔하고 효율적으로 구현하는 방법은 몇 가지 패턴과 Flutter의 생명주기를 활용하는 것입니다. 아래에 일반적인 접근법과 추천 방식을 설명할게요.1. initState에서 초기화 처리하기Flutter의 StatefulWidget에서 initState 메서드는 위젯이 처음 생성될 때 한 번만 호출되므로, 초기 데이터를 로딩하는 데 적합합니다. 예를 들어, 로컬 DB나 네트워크에서 데이터를 가져오는 비동기 작업을 여기서 시작할 수 있습니다.class MyHomePage extends StatefulWidget { @override _MyHomePageState createState() => _MyHomePageState();}class _MyHomePageState extends State { Str..
라안 도리스 Flow Research Collective 의 공동 설립자이자 CEO 많은 자기 개발 전문가, 라이프 해커 등이 추천하는 아침 운동, 명상, 확언, 독서, 찬물샤워와 같은 모닝 루틴을 실행해본 결과 아침부터 피곤하다거나, 루틴으로 인해 시간을 많이 소모여 아깝게 느껴지거나, 루틴마저 제대로 실행하지 못했다는 죄책감을 드는 사람들이 있다. 미국의 성공한 사람들은 잠에서 일어나면 일을 바로 시작한다. 그래서 따라해 보았다. 일어나자마자 몽롱한 상태에서 일을 시작했다. 그리고 곧바로 몰입 상태에 빠질 수 있었다. 생산성이 급증하며 시간이 순식간에 지나가는 것처럼 느껴졌다. 사실 위에서 언급한 모닝 루틴은 몰입 성향을 높이는 효과가 있는 것들이다. 하지만 잠에서 막 께어난 상태는 이미 뇌가..
MAC 에서 빌드를 할 때 아래와 같은 워닝이 뜬다. Warning: This version only understands SDK XML versions up to 3 but an SDK XML file of version 4 was encountered. This can happen if you use versions of Android Studio and the command-line tools that were released at different times. 빌드는 문제 없이 진행되기 때문에 무시하고 지내왔는데, 오늘따라 엄청 거슬린다. 그리서 구글링을 해보았는데, 요근래 나와 같은 문제를 해결한 블로그를 발견해서 따라 보았다. https://www.daddyhouse.net/229 Flut..
저번주에 문제 없이 잘 빌드 되었는데, 월요일 출근을하고 빌드를 하려고 하는데 안된다....출력되는 에러는 아래와 같다. FAILURE: Build failed with an exception.What went wrong: Execution failed for task ':package_info_plus:compileDebugJavaWithJavac'. error: invalid source release: 17 안드로이드 스튜디오가 오래전에 설치한 것인데, 안드로이드 스튜디오 설치때 내부에 포함된 JAVA 는 11 버전이고, 이후 window에 17버전을 추가 했었는데, 새로 다운 소스코드에는 내 컴퓨터에 JAVA 17 버전이 있는데, 이를 알려주지 않아서 안드로이드 스튜디오가 가지고 있는 JAV..
자식 위젯이 버튼인데 버튼에서 실행하는 메서드도 자식 위젯에 정의가 되어있었다. 이것을 부모 위젯의 어느 버튼을 눌렀을 때도 호출이 될 수 있도록 연결 해야 한다. 글로벌키를 이용하는 방법이 가장 간단하겠지만, 왠지 직접 전역 변수를 선언하고 싶지는 않다...좀더 세련된 방법이 없을까? 바로 떠오르지 않아 구글링을 해보니 쉽게 찾을 수 있었다. typedef 을 사용하는 방법 Parent 쪽에 함수를 연결 할 수 있는 변수 y를 정의 해주고 parent의 버튼에서 이 함수 변수를 호출 (y.call) 하도록 만들어 둔다. 그리고 parent 에서 child를 생성할때 함수를 파라미터로 받아 parent의 함수 변수 y 에 연결하는 익명함수를 전달한다. 이 익명 함수를 전달 받은 child 에서는 ..

기존에 작성한 코드에서 Riverpod 의 StateProvider 를 이용한 것이 있는데, 이 코드를 Riverpod Generator 를 활용하는 코드로 migration 하려고 보았더니 Generator 에서는 State Provider는 지원하지 않는다. 어떤 질문자가 아래와 같이 문의를 했는데, 레미의 답변은 제네레이터에서 StateProvider 같은 것을 추가할 계획은 아직 없고,사용할 State를 Class 로 선언하고 이 클래스를 이용하여 Notifier 로 프로바이더를 만들어야 한다고 한다. 간단한 예제는 아래 링크에서 참고하면된다 https://codewithandrea.com/articles/flutter-riverpod-async-notifier/#notifier-with-ri..
When are providers initialized?All Riverpod providers are lazy-loaded. (링크)The provider's state is initailized when the first listener is registeredEvery time the state changes, all listeners will be notified so they can update/rebuild themselvesBoth ref.watch() and ref.listen() can be used to register as a listener to a provider. This is in contrast with ref.read(), which only does a one-time r..
- Total
- Today
- Yesterday
- UI
- position
- 앱
- 문제 해결
- Chrome
- addPostFrameCallback
- DART
- hide
- 디자인
- IOS
- 이미지
- UX
- 한빛미디어
- 앱개발
- Syncfusion
- 인사이트
- 에러
- 앱 프로그래밍
- TextFormField
- Bluetooth
- 플러터
- plugin
- SizedBox
- Flutter
- TextField
- 크롬
- error
- BLE
- firebase
- 다트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |