微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ui仅针对颤动中的最后一条流进行更新

如何解决Ui仅针对颤动中的最后一条流进行更新

我正在制作一个sms_app,当我按下发送短信按钮时,它可以从“对象列表”中获取数据。对象具有一种返回流的方法。我正在使用Listviewbuilder遍历数据,并通过Streamviewbuilder收听流。所有对象流都在执行发送消息的功能。如果我按了第一个发送按钮,然后等待,请按第二个按钮并等待,它会相应地更新UI。
UI正在针对最后一个流进行更新。如果我不等待就一个一个地按下按钮。我在做什么错> 。 这是Video

Error Code: 1833. Cannot change column 'emp_no': used in a foreign key constraint 'dept_emp_ibfk_1' of table 'employees.dept_emp'

解决方法

我认为如果过快按下按钮,UI将无法正确更新。

您可以禁用按钮(下面的示例),直到消息传递完毕为止,您只需将按钮设置为StreamBuilder的子代即可。

onPressed: snapshot.data == SmsMessageState.Sending ? null : () async {
                  await sender.sendSms(smsList[index]);
                }
,

那是因为它们都执行相同的方法。快速连续执行多个执行时,最后一个将停止执行上一个。您必须找到一种在执行它们时将它们排队的方法,并且仅在上一个完成时才执行下一个。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。