这可能是一个错误,因为 Provider 不会自动更新依赖项

This is likely a mistake, as Provider will not automatically update dependents

每当我将提供程序添加到 MultipleProvider 时,它只会显示这个奇怪的错误,在花费 4 小时后无法解决。

main.dart

MultiProvider(
      providers: [
        Provider<HandleImageSelectionModel>(
            create: (_) => HandleImageSelectionModel()),
      ],
      child: MaterialApp(
        title: 'Flutter Demo',
        initialRoute: '/',
        onGenerateRoute: RouteGenerator.generateRoute,
        theme: ThemeData(
          primarySwatch: Colors.blue,
        ),
      ),
    );

供应商class

import 'package:flutter/foundation.dart';

class HandleImageSelectionModel extends ChangeNotifier {
  bool isSelectionModeEnabled = false;
  HandleImageSelectionModel();
  toggleSelectionMode() {
    isSelectionModeEnabled = !isSelectionModeEnabled;
    notifyListeners();
  }
}

改变状态

Provider.of<HandleImageSelectionModel>(context)
                  .toggleSelectionMode();

正在尝试消费

Consumer<HandleImageSelectionModel>(
                    builder: (context, isEnabled, child) {
                      print(isEnabled);

                      return Positioned(
                        child: Align(
                          alignment: Alignment.topRight,
                          child: CircularCheckBox(
                              value: true,
                              materialTapTargetSize:
                                  MaterialTapTargetSize.padded,
                              onChanged: (bool x) {}),
                        ),
                      );
                    },
                  )

当您传递的 class 是 ChangeNotifier 时,您正在使用 Provider

改用ChangeNotifierProvider

ChangeNotifierProxyProvider<HandleImageSelectionModel>