Search code examples
flutterdartweb-applications

Flutter - different between the real value and the displayed value


I am facing very strange problem. I want to implement the option to remove rows from DataTable, and therefore I implemented the following method:

onRemoveRow() {
    setState(
      () {
        lastRowIndex -= selectedGeneLists.length;
        geneLists.removeWhere((element) => selectedGeneLists.contains(element));
        for (int i = 0; i < geneLists.length; i++) {
          GenesListObjIndexed genesListObjIndexed = geneLists[i];
          genesListObjIndexed.index = i;
        }
        selectedGeneLists = [];
      },
    );
  }

This function should modify the list that store the table's data, and the expectation is that when I delete the items from the list the items will be deleted from the table.

But you can see here the following problem (the selected line isn't been removed): enter image description here

The strange this is when I debug and check the value of the list it's look great and as expected, so what can be the problem?


Solution

  • Use the key property to uniquely identify each row and delete the row with the key value.