以下是我如何调用名为BodyInput 的自定义小工具的代码
BodyInput(
label: 'Name',
readOnly: readOnly,
initialValue: name,
placeholder: name,
handleChange: (value) {
print(value);
},
),
占位符和initialState都有相同的值,但由于某种原因,我的TextField没有显示initialState而是显示占位符。结果
这是BodyInput本身*由于某种原因,它不允许我复制粘贴代码,所以这里是一个图像,我真的很抱歉遇到麻烦,因为某种原因,当我粘贴代码时,只有第一行被复制为代码,其余都是普通文本
好吧,我的widget.initialState在initState上的值为null:/,所以我不得不在widget中设置_controller值,我的代码变成这样
Widget build(BuildContext context) {
//Had to move this here instead of in the initState method.
_controller = new TextEditingController(text: widget.initialValue);
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(widget.label),
TextField(
onChanged: (value) {
widget.handleChange(value);
},
controller: _controller,
readOnly: widget.readOnly,
decoration: InputDecoration(
hintText: widget.placeholder, contentPadding: EdgeInsets.all(2)),
),
],
);
}
请告诉我是否有更好的答案