首页 > 解决方案 > 发生突变时如何通知其他屏幕重新获取?

问题描述

我有一些要更改后端数据的 api。

每个屏幕都有自己的状态,我开始在 initState 中获取数据,并在可用时将其存储到状态。

问题是当我知道他们的状态数据现在已经过时时,如何通知后台堆栈中的屏幕重新获取?当我回到他们身边时,他们不会被重新获取,因为不会再次调用 initState。

我来自React Native,那里有react-query,当我使相应的缓存失效时,它会重新获取并重建屏幕。颤振中有类似的东西吗?

标签: flutter

解决方案


你可以试试这个,请把它放在你的第一个屏幕上。

Navigator.of(context).pushNamed('/someRoute').then((completion){
   your initstate function
});

参考:https ://api.flutter.dev/flutter/widgets/Navigator/push.html

如果您需要通知多个屏幕,请改用https://pub.dev/packages/flutter_bloc(还有其他选项)。


推荐阅读