프로그래밍/Flutter(2)
-
Flutter에서 서버 데이터로 동적 TextField 관리하기 : 개선된 사용자 입력 솔루션
문제 상황 서버로부터 랜덤한 갯수의 데이터를 받아서 ListView.Builder를 통해 만들어진 TextField의 값으로 넣어야 하는 상황으로 2가지 문제가 있다 TextField를 TextFormField로 바꾸고 initialValue로 사용시 처음 출력은 잘 되지만 해당 리스트를 삭제했을 때 문제가 발생한다 (데이터는 변경이 되지만 초기 값이라서 화면단에 적용이 안됨) 각 TextField를 TextEditingController로 관리하자니 랜덤한 갯수의 데이터를 받기 때문에 모두 준비할 수가 없다 해결 방안 TextField를 Stack위젯으로 감싸고 유저가 상호작용할 수 있는 Container를 TextField위젯의 위에 배치한다 String형태의 flag변수를 하나 선언하고 기본값으로 ..
2024.04.02 -
참조에 의한 할당 (Reference Assignment) 문제 (Flutter)
참조에 의한 할당 (Reference Assignment) List A의 값을 할당받는 List B의 값을 변경하면 A와 B 두 리스트 모두의 값이 변하는 문제 var listA = [{'name': '민수'}]; var listB = listA; listB[0]['name'] = '철수'; print(listA[0]['name']); // '철수' 출력 왜 이런 문제가 발생하는거야? List B가 ListA를 참조하고 있다면 메모리의 같은 주소를 바라보고 있기 때문에 한 리스트에서의 변경이 다른 리스트에도 영향을 미친다, 이것은 '얕은 복사'(shallow copy)라고도 불리며 객체나 리스트를 다룰 때 흔히 발생하는 문제이므로 조심해야한다 이 문제를 해결하기 위해서는 각 리스트가 독립적인 리스트가 되..
2024.04.01