0

我正在按照 youtube 教程使用斩波器,我之前从未使用过提供程序,当我执行以下操作时出现错误。如果我不使用提供程序,我会在未找到提供程序的应用程序屏幕上收到错误消息。

我在退货提供商行和构建器行上遇到错误

import 'package:flutter/material.dart';
//import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:provider/provider.dart';
import 'package:relationship/screens/weekly_view.dart';
import 'package:relationship/services/chopper_services.dart';

void main() => MyApp();

class MyApp extends StatelessWidget {
  Widget build(BuildContext context) {
    return Provider(
        builder: (_) => PersonalPostingService.create(),
        dispose: (context, PersonalPostingService service) =>
            service.client.dispose(),
        child: MaterialApp(
          home: WeeklyData(),
        ));
  }
}

这些是错误

The named parameter 'create' is required, but there's no corresponding argument.
Try adding the required argument.

The argument type 'Widget Function(BuildContext)' can't be assigned to the parameter type 'Widget Function(BuildContext, Widget?)?'.

The return type 'PersonalPostingService' isn't a 'Widget', as required by the closure's context.

我正在使用 chopper API,但它不会引发任何错误。我有本地通知代码,但我已从 main.dart 文件中对其进行了注释

4

1 回答 1

0

在创建 Provider 小部件时,所需的参数之一曾经是builder,它需要一个函数来创建提供的类,该参数已重命名为create,因此将单词替换为builder应该create可以解决问题,或者降级您的提供程序版本转换为教程中使用的相同版本。

return Provider(
        create: (_) => PersonalPostingService.create(),
        dispose: (context, PersonalPostingService service) =>
            service.client.dispose(),
        child: MaterialApp(
          home: WeeklyData(),
        ));

我还建议进入提供程序包的更新日志,你可以在 pub.dev 上找到它,它应该显示教程版本和你当前版本之间的每一个变化。这样,如果有其他问题,您可以去那里检查是否有任何可能导致它的破坏性更改。

于 2021-09-05T21:51:26.510 回答