flutter refresh obs list of classes after changing data in it

459

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

Share:
459
Brightcode
Author by

Brightcode

Updated on January 01, 2023

Comments

  • Brightcode
    Brightcode over 1 year

    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

  • CNK
    CNK almost 2 years
    Thanks so much. I didn't know the .refresh() method for the Rx Obs in Get.