RiverPod context.read 不需要参数

问题描述

所以我开始使用 RiverPod。 尝试阅读 context.read(myProvider) 时,我收到此消息:

Too many positional arguments: 0 expected,but 1 found.

我正在使用 Flutter_riverpod: ^0.14.0+3

转到读取函数定义 - 我转到具有此函数的 provider.dart 文件

 T read<T>() {
    return Provider.of<T>(this,listen: false);
  }

解决方法

所以 - 我发现 flutter_bloc 和 flutter_riverpod 有一些重叠。

import 'package:flutter_bloc/flutter_bloc.dart' show BlocBuilder,BlocProvider;

解决了问题。

,

你应该这样称呼它: context.read<myProvider>(); 其中 myProvider 是您的提供商的类型

正如你在定义中看到的,read 不接受参数。 它使用泛型:https://dart.dev/guides/language/language-tour#generics

编辑

检查这个问题: https://github.com/rrousselGit/river_pod/issues/214#issuecomment-781030552