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

Ati*_*man 4 flutter flutter-provider

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

主程序.dart

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

提供者类别

import 'package:flutter/foundation.dart';

class HandleImageSelectionModel extends ChangeNotifier {
  bool isSelectionModeEnabled = false;
  HandleImageSelectionModel();
  toggleSelectionMode() {
    isSelectionModeEnabled = !isSelectionModeEnabled;
    notifyListeners();
  }
}
Run Code Online (Sandbox Code Playgroud)

改变状态

Provider.of<HandleImageSelectionModel>(context)
                  .toggleSelectionMode();
Run Code Online (Sandbox Code Playgroud)

尝试在这里消费

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) {}),
                        ),
                      );
                    },
                  )
Run Code Online (Sandbox Code Playgroud)

Rém*_*let 6

当您Provider传递的类是ChangeNotifier.

改用ChangeNotifierProvider

ChangeNotifierProxyProvider<HandleImageSelectionModel>
Run Code Online (Sandbox Code Playgroud)