首页 > 解决方案 > 如何使用 ChangeNotifier & Provide 或 BLOC 将整数值从一个地方获取到另一个地方?

问题描述

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

主要.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中获取_currentPageValuemain.dart中,并且还希望 main.dart 中的pageValue在carousel.dart中设置 _currentPageValue 的值?

标签: flutterproviderblocstate-managementflutter-change-notifier

解决方案


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


推荐阅读