如何使用 ChangeNotifier & Provide 或 BLOC 从一个地方获取整数值?

Posted

技术标签:

【中文标题】如何使用 ChangeNotifier & Provide 或 BLOC 从一个地方获取整数值?【英文标题】:How to get integer value from one place to another using ChangeNotifier & Provide, Or BLOC? 【发布时间】:2020-10-20 15:37:59 【问题描述】:

我希望 main.dart 中的 pageValue 在 carousel.dart 中设置值,反之亦然

ma​​in.dart

double pageValue = 0;

class HomePage extends StatelessWidget 

@override
Widget build(BuildContext context) 
return Column(
          children: <Widget>[
            ...
            Text("Page Value: $pageValue"),

          ],
        ),
      );
    );
   
  

carousel_images.dart

class CarouselImages extends StatefulWidget 
...
...
   @override
   _CarouselImagesState createState() => _CarouselImagesState();



class _CarouselImagesState extends State<CarouselImages> 
   PageController _pageController;
   double _currentPageValue = 0.0;


   @override
   void initState() 
     super.initState();
     _pageController = PageController(viewportFraction: 0.9);
     _pageController.addListener(() 
     setState(() 
       _currentPageValue = _pageController.page;
       print("VALUE OF PAGE : $_currentPageValue");
     );
    );
   

   @override
   void dispose() 
    super.dispose();
    _pageController.dispose();
  
...
...

我想从 carousel.dart 中获取一个 _currentPageValuema​​in.dart 中,并且还想要来自 ma​​in 的 pageValue。 dartcarousel.dart 中设置 _currentPageValue 的值?

【问题讨论】:

【参考方案1】:

您可以在小部件树中获取它们上方的块,使该 int 处于状态,在更改时发送具有给定 int 的事件,并使用 blocbuilder 在状态更改时自动更新它

【讨论】:

以上是关于如何使用 ChangeNotifier & Provide 或 BLOC 从一个地方获取整数值?的主要内容,如果未能解决你的问题,请参考以下文章

ChangeNotifier 安装等效?

如何在 Flutter 中使用 Provider 显示来自 ChangeNotifier 的错误

我如何从类扩展 ChangeNotifier 中获取价值

如何从 ChangeNotifier 导航?

如何将计时器添加到 changenotifier 类

如何关闭 ChangeNotifier Provider Flutter 中的函数