Flutter:如何在 showModalBottomSheet 中使用 Riverpod 进行重建

zbk*_*zbk 5 dart flutter riverpod

@override
  Widget build(BuildContext context, WidgetRef ref) {
    final provider = counterNotifierProviders(Counter.initialize());
    final counter = ref.watch(provider);
  
  return Scaffold(
    body: ElevatedButton(
      onPressed: () => showModalBottomSheet<void>(
        context: context,
          builder: (context) {
            return Column(
              children: [
                Text(counter.count),
                TextButton(child: 'Add' onPressed: () => ref.read(provider.notifier).add()),
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)

Text(counter.count)没有更新。但是,我知道counter.count正在从日志中更新。

我怎样才能解决这个问题?

ayo*_*bra 1

您可以通过使用 Consumer 使用其 ref 并为您重建小部件来解决您的问题:

Consumer(
        builder: (BuildContext context, WidgetRef ref, Widget? child) {
     return Scaffold(...);
});
Run Code Online (Sandbox Code Playgroud)