тип аргумента 'bool' не может быть назначен типу параметра 'voidcallback ()' - PullRequest
0 голосов
/ 04 июля 2019

Я создаю общее окно оповещения и передаю аргументы.но при попытке выполнить метод tp pass onPressed появляется эта ошибка.

Было выдано другое исключение: тип 'bool' не является подтипом типа '() => void'

Класс виджетов

return showDialogPop(
                      AppTranslations.of(context).text("login_error"),
                      AppTranslations.of(context).text("enter_password"),
                      AppTranslations.of(context).text("ok"),
                      Navigator.of(context).pop());

Метод showDialogPop

  showDialogPop(_titleText, _contentText, _childBtnText, VoidCallback _onPressed) {
    return showDialog(
        context: context,
        builder: (BuildContext context) => AppAlertDialog(
            titleText: _titleText,
            contentText: _contentText,
            childBtnText: _childBtnText,
            onPressed: _onPressed));
  }

общий класс AppBar

import 'package:flutter/material.dart';
class AppAlertDialog extends StatelessWidget {
  final VoidCallback onPressed;
  final String titleText;
  final String contentText;
  final String childBtnText;

  AppAlertDialog({
    this.titleText,
    this.contentText,
    this.childBtnText,
    this.onPressed,
  });

  @override
  Widget build(BuildContext context) {
    return AlertDialog(
      title: Text(titleText),
      content: Text(contentText),
      actions: <Widget>[
        FlatButton(
            onPressed: () => onPressed(),
            child: Text(
              childBtnText,
              style: TextStyle(fontWeight: FontWeight.bold),
            ))],);}}

1 Ответ

1 голос
/ 04 июля 2019

изменить Navigator.of(context).pop() на () => Navigator.of(context).pop()

т.е.

showDialogPop(
                      AppTranslations.of(context).text("login_error"),
                      AppTranslations.of(context).text("enter_password"),
                      AppTranslations.of(context).text("ok"),
                      () => Navigator.of(context).pop());
...