여기선 List에 위젯들을 추가 후 remove로 삭제할때 작동하지 않는 경우를 메모한다.

 

1. 현상

List<Widget>을 선언 한 후 add함수로 필요한 위젯들을 추가 하였다.

그리고 builder 팩토리 생성자로 리스트의 위젯들을 빌드하여 사용자에게 보여준다.

또한 동적으로 삭제도 할 수 있으며 setState함수에서 remove함수를 호출하였다.

하지만 리스트에서 아이템이 삭제가 되지않았다..

 

2. 해결

리스트의 remove함수가 아닌 removeWhere함수를 이용하라는 검색결과가 있었다.

사용방법은 C#에서 자주 사용한 Linq식과 똑같이 removeWhere((파라미터)=>판별식);

과 같이 사용하면 되고 이렇게 사용하는 편이 요소를 지정하는데 애매하지 않고 확실하다고 생각한다.

나는 각 요소에 key값을 주어 이 key값을 비교해 삭제하는 판별식을 작성하였다.

 

참고 : https://stackoverflow.com/questions/66314111/how-to-remove-an-element-from-list-of-widgets-in-flutter/66315505

 

How to remove an element from List of Widgets in flutter?

I made a list of TableRows in flutter whichI passed as a children to my Table widget .Each row has some data and a flat button at the end which deletes the data from by database and I want to delet...

stackoverflow.com

 

+ Recent posts