使用GetX检查双变量时,我无法更新文本
我正在使用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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我找到了解决方案。在我将新项目添加到列表之后。我了解到我需要刷新清单。
来自
void selectMessage(MessageModel Message)=&gt; selectmessages.value.add(message);
to
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