発生したエラー
Inavalid Constant Value
該当コード
edit_title_view.dart
class EditTitleViewState extends State<EditTitleView> {
final TextEditingController _titleController = TextEditingController();
var text = "";
void init() {
text = "this is sample text.";
}
// 中略 buildメソッドの中でcustomTextField(text)を呼び出している
Widget customTextField(String content) {
return Expanded(
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 0.0),
child: TextFormField(
controller: _titleController,
maxLines: null,
expands: true,
decoration: const InputDecoration(
contentPadding: EdgeInsets.zero,
hintText: content, // Invalid constant value.
hintStyle: TextStyle(
color: Colors.grey,
fontSize: 13
),
border: InputBorder.none,
),
style: TextStyle(
fontSize: 13,
fontWeight: FontWeight.w300
),
onFieldSubmitted: (value){
// do something
},
),
)
);
}
}
解決策
-
InputDecorationのconstを外す
decoration: InputDecoration(
contentPadding: EdgeInsets.zero,
hintText: content,
-
const: コンパイル(プレ実行)時に値が決定する。 -
text/content: 実行時に値が決定する。 - すなわちコンパイル時に値が決定してないものを
constの中で定義することは不可能ということ。