Riverpod 没有重新构建预期的小部件

问题描述

我正在试用 riverpod。当我尝试“观看”时(就像我对提供者所做的那样),小部件没有更新。如果我返回并返回到此页面,只有在它重建后我才能看到更改。

final randomize = Provider((_) => RandomizeChangeNotifier());
...
...
Text(
      ref.watch(randomize).randomNumber?.toString() ??
          'Generate A Random Number',style: TextStyle(fontSize: 16),)

ChangeNotifier 类:

class RandomizeChangeNotifier extends ChangeNotifier {

  final random = Random();
  
  int? _randomNumber;

  get randomNumber => _randomNumber;

  int min = 0;
  int max = 0;

  generaterandomNumber(){

    _randomNumber = min + random.nextInt(max + 1 - min);
    notifyListeners();
  }

}

完整的回购链接https://github.com/Cyberavater/randomizer

解决方法

final randomize = Provider((_) => RandomizeChangeNotifier());

应该是一个 ChangeNotiferProvider

final randomize = ChangeNotifierProvider((_) => RandomizeChangeNotifier());