flutter - 如何/我可以使用flutter的提供程序模块来有效地处理具有可变数量控件的动态生成页面?
问题描述
如何/我可以使用flutter的提供程序模块来有效地处理具有可变数量控件的动态生成页面?
假设我有一个数据库,用户可以在其中添加行和一个类似于以下内容的 UI:
<用户信息小部件>
<其他一些数据小部件>
<RowWidget 查看和修改第 1 行>
...
<RowWidget 查看和修改第 n 行>
假设每一行都由一个 RowInfo 对象定义。如果我创建一个包含 List<RowInfo> 的 ChangeNotifier,我可以让每个 RowWidget 与该单个 ChangeNotifier 通信并通过某种 id 或名称来标识自己。但是,如果我这样做,那么每次与任何 RowWidget 关联的状态发生更改时,每个 RowWidget 都会重新构建。如果我使 RowWidget 有状态或在每个 RowWidget 中使用提供程序,我可以让它们单独更新,但是我失去了让其他小部件在何时做出反应的选项它们会发生变化,例如,如果某个其他小部件显示有关所选行的信息,我可能希望在关联的 RowWidget 更改其状态时更新它,并且我认为我失去了有效执行此操作的能力。
这两个正常选项可用吗?
我是否遗漏了一个或两个方面的东西?
我是否应该将状态向上移动到 List<RowInfo> 样式方法并认识到性能损失不是什么大不了的事?
解决方案
推荐阅读
- javascript - Javascript以vali增量循环日期/时间
- c# - 如何使用 buttonclick 在不同的标签上显示增量文本框循环
- postgresql - PostgreSQL - 按array_position排序并在另一列上不同
- python - 返回:(__init__ 方法的参数,在 __init__ 方法中创建的属性的名称)
- javascript - JavaScript:在回调期间更新 DOM 属性
- python - 使用 RASA 的 API 的正确方法是什么(rasa.core.processor - 遇到异常)?
- python - 为什么我的 Google Colab 实例会因这种 numpy 的使用而崩溃?
- sql - 从其事务中返回一个项目的持续时间,多对多,SQL
- html - 不和我的代码中的“label for =”标签,但它似乎工作正常?
- python - 如何在python中使用Beautifulsoup查看一段HTML代码