如何使用 Riverpod 生成器设置 Amplitude?

问题描述 投票:0回答:1

我正在使用 Riverpod 进行状态管理,并希望设置 Amplitude 进行跟踪。我使用生成器设置了一个提供程序,如下所示:

@riverpod
Amplitude amplitudeProvider(AmplitudeProviderRef ref) {
  final Amplitude amplitude = Amplitude.getInstance();
  amplitude.init(Env.amplitudeApiKey);
  return amplitude;
}

但是当我尝试用

来阅读它时
final amplitude = ref.read(amplitudeProvider);

我收到错误

The argument type 'Amplitude Function(ProviderRef)' can't be assigned to the parameter type 'ProviderListenable'.

当我通过代码生成手动设置提供程序时,一切正常。但由于您不应该混合生成的和非生成的提供程序,我有点陷入困境。有谁明白这是从哪里来的吗?

工作原理如下:

final amplitudeProvider = Provider<Amplitude>((ref) {
  final Amplitude amplitude = Amplitude.getInstance();
  amplitude.init(Env.amplitudeApiKey);
  return amplitude;
});
flutter riverpod amplitude-analytics riverpod-annotation
1个回答
0
投票

别忘了添加:

文件顶部的

部分

'name_of_your_file.g.dart'

那么你的方法应该是:

@riverpod
Amplitude amplitude(AmplitudeRef ref) {
  final Amplitude amplitude = Amplitude.getInstance();
  amplitude.init(Env.amplitudeApiKey);
  return amplitude;
}

生成器将生成

amplitudeProvider

© www.soinside.com 2019 - 2024. All rights reserved.