首页 > 解决方案 > Flutter 字段“replyMessage”尚未初始化

问题描述

我有回复类,当用户尝试回复消息时,它将填充数据,而不是它只是空对象。现在它给了我以下错误:

 Unhandled Exception: LateInitializationError: Field 'replyMessage' has not been initialized.

Code

late ReplyMessage replyMessage;
  @override
  void initState() {
    super.initState();
  }

replyMessage然后,当用户单击这样的发送按钮时,我会检查这一点(错误行已注释):

IconButton(
    onPressed: () {
    setState(() {
        _textEditingController.text.isEmpty ? _validate = true : _validate = false;
        Future.delayed(Duration(milliseconds: 1000), () {
        setState(() {
            _validate = false;
            if(replyMessage.id != null) { // <-- error comes from this line
            sendMessage(userToken, _textEditingController.text, args.id, replyMessage.id);
            }
            else {
            sendMessage(userToken, _textEditingController.text, args.id, null);
            }
        });
        });
    });
    },
    icon: Icon(Icons.send),
    color: btnColor,
),

另外在这里我们我的课程代码:

class ReplyMessage {
  int? id;
  String? message;
  String? userName;

  ReplyMessage({
    required this.id,
    required this.message,
    required this.userName
  });
}

标签: flutter

解决方案


如果你定义你的字段比你必须在 init 方法中初始化它或直接赋值

late ReplyMessage replyMessage;
  @override
  void initState() {
replyMessage =  Assign some value here

    super.initState();
  }

推荐阅读