Я использую Riverpod для управления государством в своем приложении Flutter. Riverpod предлагает функцию для комбинированных провайдеров, но мой зависимый провайдер не обновляется и всегда возвращает null.
При нажатии на одну из булавок (секретов) на карте мой selectedSecretProvider обновляется (по умолчанию - null). Это должно вызвать инициализацию моего аудиоплеера. И при нажатии кнопки воспроизведения должен воспроизводиться звук текущего _selectedSecret. Итак, мой selectedTrackProvder зависит от моего selectedSecretProvider:
final selectedTrackProvider = StateNotifierProvider<SelectedTrack, Track>((ref) {
Secret? selectedSecret = ref.watch(selectedSecretProvider);
return SelectedTrack(selectedSecret);
});
Вот мой класс selectedTrack:
class SelectedTrack extends StateNotifier<Track> {
SelectedTrack(this.selectedSecret) : super(Track.initial());
Secret? selectedSecret;
@override
void dispose() {
...
}
void initAudioPlayer() {
...
}
Future<int> play() async {
print(selectedSecret);
return ...
}
}
Так почему при нажатии кнопки воспроизведения всегда выводится null? (Кстати, мой bottom_panel_sheet показывает правильные данные, а также потребляет selectedSecretProvider.)