【问题标题】:the argument type 'bool' can't be assigned to the parameter type 'voidcallback()'参数类型“bool”不能分配给参数类型“voidcallback()”
【发布时间】:2019-07-04 04:28:47
【问题描述】:

我创建通用警报框并传递参数。但是当尝试 tp pass onPressed 方法时,这个错误来了。

抛出了另一个异常:类型'bool'不是类型的子类型 '() => 无效'

小部件类

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),
            ))],);}}

【问题讨论】:

    标签: flutter dart flutter-navigation


    【解决方案1】:

    将Navigator.of(context).pop() 更改为() =&gt; 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());
    

    【讨论】:

    • 或者只是Navigator.of(context).pop,创建一个pop方法的分离。
    猜你喜欢
    • 2020-08-23
    • 2021-04-07
    • 2021-08-19
    • 2021-10-16
    • 2021-10-10
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 2021-07-06
    相关资源
    最近更新 更多