Не удается запустить Alice HTTP Inspector. Пожалуйста, добавьте NavigatorKey в ваше приложение

Navigator Key уже был добавлен в код, но он показывает ошибку (красная линия) под navigatorKey.

@override
Widget build(BuildContext context) {
return WillPopScope(
navigatorKey: _alice.getNavigatorKey(),
child: Theme(
data: ThemeData(
brightness: Brightness.light,
primarySwatch: AppColor.appColor,
primaryColor: AppColor.white,
buttonTheme: ButtonThemeData().copyWith(
buttonColor: AppColor.appColor,
textTheme: ButtonTextTheme.primary),
fontFamily: "EncodeSans",
),
child: layout()),

onWillPop: () {
return handleBackPress();
});
}

2 ответа

Сменить навигаторКлюч на ключ:

ваш код должен выглядеть следующим образом:

@override
Widget build(BuildContext context) {
return WillPopScope(
key: _alice.getNavigatorKey(), // here i replace key with navigatorKey
child: Theme(
data: ThemeData(
brightness: Brightness.light,
primarySwatch: AppColor.appColor,
primaryColor: AppColor.white,
buttonTheme: ButtonThemeData().copyWith(
buttonColor: AppColor.appColor,
textTheme: ButtonTextTheme.primary),
fontFamily: "EncodeSans",
),
child: layout()),

onWillPop: () {
return handleBackPress();
});
}

Использовать http-пакет http: любая версия

  1. Создайте новый класс (APIConstant), а затем используйте этот код в классе.
        static Alice alice=Alice(
    showShareButton: true,
    showNotification: true,
  );
  1. Используйте этот код в main.dart

    navigatorKey: APIConstant.alice.getNavigatorKey(),

  2. Так:

if (kDebugMode) APIConstant.alice.onHttpResponse(response, body: jsonEncode(sendOtpReq));

        Future<SendOtpModels?> sendOtpApi(SendOtpReq  sendOtpReq) async {
    try {
      CustomLoader.showLoader("Please wait");
      final response = await http.post(Uri.parse(APIConstant.sendOtp),
        headers: APIConstant.authHeader,
        body: jsonEncode(sendOtpReq),
      );
      if (kDebugMode) APIConstant.alice.onHttpResponse(response, body: jsonEncode(sendOtpReq));

      const utf8Decoder = Utf8Decoder(allowMalformed: true);
      final decodedBytes = utf8Decoder.convert(response.bodyBytes);
      Map<String, dynamic> responseBody = json.decode(decodedBytes);
      if (response.statusCode == 200) {
        CustomLoader.closeLoader();
        return SendOtpModels.fromJson(responseBody);
      }
    }
    on TimeoutException catch (e) {
      CustomLoader.closeLoader();
      CustomLoader.showToast(e.message.toString());
    }  catch (e) {
      CustomLoader.closeLoader();
      CustomLoader.showToast(e.toString());
    }
    return null;
  }
Другие вопросы по тегам