Provider简单使用

2022-08-05  本文已影响0人  烟影很美
class MyModel {
  var num1 = 0;
  var num2 = 1;
}
// ...
  @override
  Widget build(BuildContext context) {
    return Provider(
      create: ((context) {
        return MyModel();
      }),
      builder: (context, child) {
        return Text('${context.read<MyModel>().num1} and ${context.read<MyModel>().num2}');
      },
    );
  }
class MyModel extends ChangeNotifier {
  var num1 = 0;
  var num2 = 1;
}
// ...
  @override
  Widget build(BuildContext context) {
    return ChangeNotifierProvider(
      create: ((context) {
        return MyModel();
      }),
      builder: (context, child) {
        return Text('${context.watch<MyModel>().num1} and ${context.watch<MyModel>().num1}');
      },
    );
  }
  final model = MyModel();

  @override
  Widget build(BuildContext context) {
    return ChangeNotifierProvider.value(
      value: model,
      builder: (context, child) {
        return Text('${context.watch<MyModel>().num1} and ${context.watch<MyModel>().num1}');
      },
    );
  }
class MyModel extends ChangeNotifier {
  var num1 = 0;
  var num2 = 1;

  addNum2() {
    num2++;
    notifyListeners();
  }
}
// ...
  final model = MyModel();
  @override
  Widget build(BuildContext context) {
    return ChangeNotifierProvider.value(
      value: model,
      builder: (context, child) {
        return Column(
          children: [
            Text('${context.read<MyModel>().num1}'),
            Consumer<MyModel>(builder: ((context, value, child) {
              return Text('${value.num2}');
            })),
            ElevatedButton(
              onPressed: () {
                model.addNum2();
              },
              child: const Icon(Icons.add),
            ),
          ],
        );
      },
    );
  }
上一篇下一篇

猜你喜欢

热点阅读