我正在了解 Provider 包如何与 Flutter 一起工作,但对 listen:false 的工作方式感到困惑。
我使用新 Flutter 项目中常见的 Counter 示例编写了一些基本代码。我使用 Provider 创建了三种类型的无状态小部件:
第三个例子是展示如何在不重建的情况下访问提供者对象并调用它的方法。
当我运行应用程序时,所有小部件计数都在发生变化 - 我只希望它在前两个发生变化。
这是一个简单的例子 - 我做错了什么?
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
void main() => runApp(MyApp());
class Counter with ChangeNotifier {
int _count = 0;
int get count => _count;
void increment() {
_count++;
notifyListeners();
}
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [
ChangeNotifierProvider(builder: (_) => Counter()), …Run Code Online (Sandbox Code Playgroud)