0

嗨,我正在按照 Reso Coder 教程使用 chopper 进行 http 处理,我使用了完全相同的代码,但提供者给出了错误。我正在使用其他服务,如 local_notifications 等,请注意我没有从 pubspec.yaml 中删除我的 https 包。

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';

final FlutterLocalNotificationsPlugin fluterLN =
    FlutterLocalNotificationsPlugin();

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  var initializeAndroid = AndroidInitializationSettings("fly");

  var initialSettings = InitializationSettings(
      android: initializeAndroid, iOS: null, macOS: null);

  await fluterLN.initialize(initialSettings,
      onSelectNotification: (payload) async {
    if (payload != null) {
      debugPrint("notification payload  $payload");
    }
    print(payload);
  });

  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyApp createState() => _MyApp();
}

class _MyApp extends State<MyApp> {
  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.

这是我个人的Posting Service Class 之前没用过provider,不知道概念和功能用Future 和future builder 很多###

import 'package:chopper/chopper.dart';

part 'chopper_services.chopper.dart';

@ChopperApi(baseUrl: '/personal/')
abstract class PersonalPostingService extends ChopperService {
  @Get()
  Future<Response> getPosts();

  @Get(path: '/{created}')
  Future<Response> getFilteredPost(@Path('created') DateTime dateTime);

  @Post()
  Future<Response> postPersonal(
    @Body() Map<String, dynamic> body,
  );

  static PersonalPostingService create() {
    final client = ChopperClient(
        baseUrl: 'http:/url',
        services: [_$PersonalPostingService()],
        converter: JsonConverter());

    return _$PersonalPostingService(client);
  }
}
4

0 回答 0