使用GetX检查双变量时,我无法更新文本

发布于 2025-02-09 12:37:22 字数 1846 浏览 1 评论 0原文

我正在使用GetX进行国家管理,但我有问题。

我有一个消息页。它显示消息,在我持有消息时,它正在打开编辑模式,以照常选择一些消息。当我掌握一条消息时,我会更改状态:

My edit mode variable =>  RxBool isEditMode = RxBool(false);
Opening edit mode =>  void openEditMode() => isEditMode.value = true;

也有一个文本小部件。当它不在编辑模式下时,它将写入“更新”,但是当我打开编辑模式时,它将写入“选择全部”,如果我选择其中一条消息,它将写入“删除选择”。现在,在正常的写作中,选择全部和输入编辑模式之后,其写作选择全部。但是,当我在列表中添加一条消息时,它不会更改为“删除选定”。 这就是我的方式;


在控制器上;

var selectedMessages = Rx<List<MessageModel>>([]); 
void selectMessage(MessageModel message) => selectedMessages.value.add(message);

在文字小部件上;

                  GetX<MessageController>(
                    init: MessageController(),
                    initState: (_) {},
                    builder: (controller) {
                      inspect(controller.selectedMessages.value);
                      return TextButton(
                        onPressed: () {
                          controller.closeEditMode();
                          sharedController.showBottomNavBar();
                        },
                        child: Text(
                          controller.isEditMode.value
                              ? controller.selectedMessages.value.isEmpty
                                  ? "Select All" //I can see Select all
                                  : "Remove Selected" // But when selectedmessages.value doesnt empty i cant see that one.
                              : "Update" //I can see Update,
                          style: TextStyle(
                            fontWeight: FontWeight.w500,
                            color: ColorService.purple,
                          ),
                        ),
                      );
                    },
                  ),

我应该怎么办 ?感谢您的回复!

I'm using GetX for state management but i have a problem.

I have a messages page. Its showing messages and in that page when i hold a message it's opening edit mode for select some messages as usual. When i hold a message i changed my state like :

My edit mode variable =>  RxBool isEditMode = RxBool(false);
Opening edit mode =>  void openEditMode() => isEditMode.value = true;

also i have a text widget. When its not in edit mode it will write "Update" but when i open edit mode it will write "Select All" And if i select one of the message it will write "Remove Selected". Now in normally its writing select all and after i enter edit mode its writing select all. But when i add a message to my list its not changing to "Remove Selected".
This is how i made ;


On Controller ;

var selectedMessages = Rx<List<MessageModel>>([]); 
void selectMessage(MessageModel message) => selectedMessages.value.add(message);

On Text Widget ;

                  GetX<MessageController>(
                    init: MessageController(),
                    initState: (_) {},
                    builder: (controller) {
                      inspect(controller.selectedMessages.value);
                      return TextButton(
                        onPressed: () {
                          controller.closeEditMode();
                          sharedController.showBottomNavBar();
                        },
                        child: Text(
                          controller.isEditMode.value
                              ? controller.selectedMessages.value.isEmpty
                                  ? "Select All" //I can see Select all
                                  : "Remove Selected" // But when selectedmessages.value doesnt empty i cant see that one.
                              : "Update" //I can see Update,
                          style: TextStyle(
                            fontWeight: FontWeight.w500,
                            color: ColorService.purple,
                          ),
                        ),
                      );
                    },
                  ),

What should i do ? Thanks for responses!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眼睛会笑 2025-02-16 12:37:22

我找到了解决方案。在我将新项目添加到列表之后。我了解到我需要刷新清单。

来自

void selectMessage(MessageModel Message)=&gt; selectmessages.value.add(message);

to

void selectMessage(MessageModel message) {
selectedMessages.value.add(message);
selectedMessages.refresh();
 }

I found the solution. After i add new item to my list. I learned i need refresh list like ;

from

void selectMessage(MessageModel message) => selectedMessages.value.add(message);

to

void selectMessage(MessageModel message) {
selectedMessages.value.add(message);
selectedMessages.refresh();
 }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文