问题描述
我正在试用 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());