如何修改AsyncMemoizer的返回类型为Future<List<MyModel>>?
解决AsyncMemoizer返回类型不匹配问题
问题根源在于初始化AsyncMemoizer时未指定泛型类型,默认会使用dynamic,导致runOnce返回Future<dynamic>,和你声明的Future<List<MyModel>>类型不兼容。
修改步骤:
- 给
AsyncMemoizer指定泛型类型List<MyModel> - 确保
getData()方法确实返回Future<List<MyModel>>(若该方法返回类型错误,仍会导致类型不匹配)
修改后的代码:
final AsyncMemoizer<List<MyModel>> _memoizer = AsyncMemoizer(); Future<List<MyModel>> getSometing() async { return _memoizer.runOnce(() async { return await getData(); }); }
这样_memoizer.runOnce会明确返回Future<List<MyModel>>,与方法声明的返回类型一致,类型问题即可解决。
内容的提问来源于stack exchange,提问作者mana
相关产品推荐
相关产品推荐

