flutter refresh obs list of classes after changing data in it

Issue

I created a list and made it observable by using using getx obs

var msgChat = List.filled(1, UserMessagesModel(), growable: true).obs; 

and if i append or add a new to it, it automatically updates in the UI but my problem is that if i using a single value inside the classes of the list it doesn’t get updated until i do it for the second time before it updates

socket.on("msg_delivered", (del) {
    OfflineDatabaseManager.instance.updateMsgReadData(del).then((value) {
      uController.msgChat.forEach((el) {
        if (el.msgId == del) {
          print(el.msgId);
          el.isRead = 'true';
        }
      });
    });
  });

my listview is wrap using an Obx widget which makes it work but it doesn’t updated if a single value in the class of the list is changed please is there a way to like refresh the list or listview and also i can’t use setState(() {}); because an not inside a Statefulbuilder but in a class which extends to getx

class SocketHandler extends GetxController {}

please how do i fix this issue. Thank. Also if you require more explanation then tell me to explain

Solution

you can use refresh method like this on your observable, after changing the value:

msgChat.refresh()

if this didn’t work, it’s probably because you didn’t use Obs correctly

please share the Obs part if the problem remains so i can help

Answered By – Mohsen Parvar

Answer Checked By – Marilyn (FlutterFixes Volunteer)

Leave a Reply

Your email address will not be published. Required fields are marked *