树状状态管理

时间:2020-03-29 11:43:42

标签: flutter flutter-state

我有一个带有树状模型的Flutter应用程序。 假设我们有一个公司列表,其中包含一个雇员列表,其中包含一个任务列表。 现在,我有三页-第一页显示公司列表,第二页-具有员工列表的公司详细信息,第三页-具有任务列表的员工详细信息。我将公司作为命名的导航参数传递给第二个屏幕,将员工传递给第三个屏幕。在第二个屏幕上可以编辑公司,在第三个屏幕上可以编辑员工。 在我当前的情况下,第二个和第三个屏幕是无状态窗口小部件,当我在这些屏幕上进行某些更改时,这当然会导致UI无法重绘。 还有一个要求,就是只要在此层次结构中进行任何更改,就必须在根级别(公司列表)调用某种方法来重新计算某些内容。

所以问题是我应该如何解决这里的状态管理?

  1. 那两个屏幕也应该是有状态的小部件吗?如果只有根一是有状态的,而那些嵌套的一只是以某种方式通知根一状态已经改变,那会不会更有表现呢?
  2. 如果我使用回调将状态从子状态更改为父状态,那将是不理想的,因为我必须传递我处理的对象(例如employee),然后在列表中搜索并更新根小部件。但这没有任何意义,因为此对象已更改。因此,我只需要告诉flutter,它必须重建嵌套屏幕的小部件。
  3. 除了重建小部件,每当发生更改时,我还需要重新计算根级别的状态。我该如何实现?

我希望这篇文章可以理解:)

0 个答案:

没有答案