首页 > 解决方案 > 为什么我收到错误,flutter statfulwidget flutter 中的常量值无效

问题描述

在下面的代码中,widget.hintText 给出了错误,我试图将 datepicker 作为单独的组件,并在从另一个文件调用它时动态传递提示文本值。

import 'package:date_field/date_field.dart';
import 'package:flutter/material.dart';


class DatePicker extends StatefulWidget {
  final String hintText;
  DatePicker({
    this.hintText,
    Key key,
  }): super(key: key);

  @override
  _DatePickerState createState() => _DatePickerState();
}
class _DatePickerState extends State<DatePicker> {
  @override
  Widget build(BuildContext context) {
    return DateTimeFormField(
  decoration: const InputDecoration(
    hintText: widget.hintText,
    hintStyle: TextStyle(color: Colors.black54,fontSize: 16),
    errorStyle: TextStyle(color: Colors.redAccent),
    suffixIcon: Icon(Icons.event_note),
  ),
  mode: DateTimeFieldPickerMode.date,
  autovalidateMode: AutovalidateMode.always,
  // validator: (e) => (e?.day ?? 0) == 1 ? 'Please not the first day' : null,
  onDateSelected: (DateTime value) {
  },
);
  }
}


标签: flutterdartstatefulwidget

解决方案


错误来自在widget.hintconst 对象内部使用变量的事实InputDecoration

我在date_field代码中找不到强制您使用常量的任何地方decoration

所以你可能只是删除const前面的关键字InputDecoration

有关和之间的区别的详细信息,请参阅此答案constfinal


推荐阅读