gpt4 book ai didi

Flutter Riverpod - .autoDispose - 无法将参数类型 'AutoDisposeProvider' 分配给参数类型 'AlwaysAliveProviderBase'

转载 作者:行者123 更新时间:2023-12-02 18:07:17 28 4
gpt4 key购买 nike

根据 the docs当我收到此错误时,我应该用 .autoDispose 标记两个 Providers:

The argument type 'AutoDisposeProvider' can't be assigned to theparameter type 'AlwaysAliveProviderBase'

为什么我在这个简约示例中仍然遇到错误?

final a = FutureProvider.autoDispose<List<String>>((ref) {
return Future.value(["test"]);
});

final b = FutureProvider.autoDispose<List<String>>((ref) {
return ref.watch(a);
});

最佳答案

发生此错误是因为您试图在未标有 .autoDispose 的提供程序中监听标有 .autoDispose 的提供程序。

final firstProvider = Provider.autoDispose((ref) => 0);

final secondProvider = Provider((ref) {
// The argument type 'AutoDisposeProvider<int>' can't be assigned to the
// parameter type 'AlwaysAliveProviderBase<Object, Null>'
ref.watch(firstProvider);
});

解决方案是用 .autoDispose 标记 secondProvider。

final firstProvider = Provider.autoDispose((ref) => 0);

final secondProvider = Provider.autoDispose((ref) {
ref.watch(firstProvider);
});

我只是从页面底部的官方 Riverpod 文档中复制解决方案: https://riverpod.dev/docs/concepts/modifiers/auto_dispose/

关于Flutter Riverpod - .autoDispose - 无法将参数类型 'AutoDisposeProvider' 分配给参数类型 'AlwaysAliveProviderBase',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72982554/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com