flutter 数据共享

53 阅读1分钟

一、StatefulWidget

import 'package:flutter/material.dart';import 'package:myflutter/my_inherited_widget.dart';
class OneView extends StatefulWidget {  const OneView({Key? key}) : super(key: key);
  @override  // ignore: library_private_types_in_public_api  _OneViewState createState() => _OneViewState();}
class _OneViewState extends State<OneView> {  @override  Widget build(BuildContext context) {    int? counter = MyInheritedWidget.of(context)?.counter;
    return Container(      width: 100,      height: 200,      color: Colors.red,      child: Text("$counter"),    );  }}




import 'package:flutter/material.dart';
class MyInheritedWidget extends InheritedWidget {  final int counter;  const MyInheritedWidget(      {super.key, required this.counter, required Widget child})      : super(child: child);
  static MyInheritedWidget? of(BuildContext context) {    return context.dependOnInheritedWidgetOfExactType();  }
  @override  bool updateShouldNotify(covariant InheritedWidget oldWidget) {    return true;  }}



import 'package:flutter/material.dart';
class MyInheritedWidget extends InheritedWidget {  final int counter;  const MyInheritedWidget(      {super.key, required this.counter, required Widget child})      : super(child: child);
  static MyInheritedWidget? of(BuildContext context) {    return context.dependOnInheritedWidgetOfExactType();  }
  @override  bool updateShouldNotify(covariant InheritedWidget oldWidget) {    return true;  }}