下面是提供者:
final randomValueProivider = StateNotifierProvider<RandomStateNotifier,
double>(
(ref) {return RandomStateNotifier(1);});
class RandomStateNotifier extends StateNotifier<double>{
RandomStateNotifier(super. State);
}
我听供应商这样说:
double _currentServiceRequestProvider = ref.watch(randomValueProivider);
这里是下面的小部件
Row(
children: [
Text("Random "
"$_currentServiceRequestProvider")
],
),
有一个滑块小部件,当用户滑动它时,它会改变数字
FlutterSlider(
values: [10],
max: 10,
min: 0,
onDragging: (handlerIndex, lowerValue, upperValue) {
ref.watch
(currentServiceRequestProvider
.notifier).updateBedrooms(lowerValue);
ref.watch
(currentServiceRequestProvider
.notifier).updateBedrooms(lowerValue);
_currentServiceRequestProvider = lowerValue;
logger.d(ref.watch
(currentServiceRequestProvider
.notifier).state.Randomnumber);
},
),
上面的滑块确实起作用,它确实更新了随机数,然后我可以通过记录器看到更新的数字,但文本小部件没有更新
我已经声明了一个状态通知提供程序,它保存一个double值,有一个滑块小部件允许用户选择他们想要的数字,然后这个小部件更新提供程序,我希望Text小部件显示新数字,但它没有显示新数字
1条答案
按热度按时间ee7vknir1#
好吧..你没有向我们提供你如何实现这个“随机数”。这是一个属性而不是一个函数吗?它是如何工作的?另外,你不应该ref.watch在事件处理程序中使用www.example.com,而应该使用ref.read。阅读currentServiceRequestProvider的通知程序,然后调用randomNumber()函数。函数应该是这样的: