错误:无法将参数类型“void Function(bool)”分配给参数类型“void Function(bool?)”

德拉拉姆

问题是标题。我正在尝试构建 todoye 应用程序,正如您所看到的,回调被认为是 ValueChanged<bool?> 不是一个简单的函数,因此我无法将我的逻辑移动到另一个 statefullwidget 以减少我的应用程序中的重建我尝试了不同的事情,但我得到了错误总是请帮助。这是我的代码:

import 'package:flutter/material.dart';

class TaskTile extends StatefulWidget {
  @override
  _TaskTileState createState() => _TaskTileState();
}

class _TaskTileState extends State<TaskTile> {
  bool isChecked = false;
  void checkBoxCallBack(bool checkBoxState) {
    setState(() {
      isChecked = checkBoxState;
    });
  }

  @override
  Widget build(BuildContext context) {
    return ListTile(
      title: Text(
        'finish up angla\'s course today',
        style: TextStyle(
          decoration: isChecked ? TextDecoration.lineThrough : null,
        ),
      ),
      trailing: TaskCheckBox(
        checkBoxState: isChecked,
        toggleCheckBoxState: checkBoxCallBack,
      ),
    );
  }
}

class TaskCheckBox extends StatelessWidget {
  final bool checkBoxState;
  final ValueChanged<bool?> toggleCheckBoxState;

  const TaskCheckBox({
    required this.checkBoxState,
    required this.toggleCheckBoxState,
  });

  @override
  Widget build(BuildContext context) {
    return Checkbox(
      activeColor: Colors.lime,
      value: checkBoxState,
      onChanged: toggleCheckBoxState,
    );
  }
}

错误在第 27 行......我想将我的自定义函数传递给我的 statelessWidget 的变量。

曲子

发生这种情况是因为您已经声明了toggleCheckBoxStateas final ValueChanged<bool?> toggleCheckBoxState;,并且bool数据类型与bool?数据类型不同。bool?是可空的布尔类型。要修复它,请将方法更改checkBoxCallback为以下内容

void checkBoxCallBack(bool? checkBoxState) {
    if (checkBoxState != null) {
      setState(() {
        isChecked = checkBoxState;
      });
    }
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

错误:无法将参数类型“ void Function(ImageInfo,bool)”分配给参数类型“ ImageStreamListener”

错误:无法将参数类型“ Future”分配给参数类型“ void Function()”

无法将参数类型“void Function(String)”分配给参数类型“void Function(String?)?”

DropdownButton 错误:无法将参数类型“void Function(String)”分配给参数类型“void Function(String?)?”

Flutter 类型“Function”无法分配给参数类型“void”

无法将参数类型“Function”分配给参数类型“void Function()”?

错误:无法将参数类型“Function”分配给参数类型“void Function()?”。“Function”来自“dart:core”.onPressed: selectHandler

Flutter / Dart错误:无法将参数类型'Null Function(Key)'分配给参数类型'void Function(Object)'

类型“ void”的参数不能分配给类型“ Action”的参数

错误:参数类型“void Function()?” 不能分配给参数类型“void Function(String?)?”

错误:参数类型“函数?” 不能分配给参数类型“void Function(bool?)?”

无法将参数类型“Function”分配给参数类型“void Function(String?)?” 在这里做什么:)

无法将类型'()-> Void'的值分配给'(()-> Void)!'

参数类型 'void Function()?' 不能分配给参数类型“void Function()”

如何解决诸如 void' 之类的错误无法分配给类型为 '(value: [Post, any, {}[]]) => void' 的参数

错误TS2345:类型'(response:string)=> void'的参数不能分配给类型'(((value:{})=> void | PromiseLike <void>)| 空值

错误TS2345:类型'OperatorFunction <User,void>'的参数不能分配给类型'OperatorFunction <Object,void>'的参数

我遇到了参数类型“void Function(bool)”的问题无法分配给参数类型“void Function(bool?)?”

收到错误“类型'void'无法分配给类型'ReactNode'”

无法将参数类型“ ”分配给参数类型列表 <>

'() => () => Promise<void>' 类型的参数不可分配给 'EffectCallback' 类型的参数

Flutter - 不能将函数类型的参数分配给“void function()”类型的参数

类型'Function'的参数不能分配给类型'(... args:any [])=> void'的参数

角5:类型'void'的参数未分配给类型'{} |的参数 PromiseLike <{}>'

类型'(e:CustomEvent)=> void'的参数不能分配给'EventListenerOrEventListenerObject'类型的参数

类型'(snap:DataSnapshot)=> void'的参数不能分配给类型'(a:DataSnapshot)=> boolean'的参数

“(旧:数字)=> void”类型的参数不可分配给“数字”类型的参数

“(事件:字符串)=> void”类型的参数不可分配给“EventListenerOrEventListenerObject”类型的参数

类型'(event:BlahEvent)=> void'的参数不能分配给'EventListenerOrEventListenerObject'类型的参数