0

这是关于我如何调用名为 BodyInput 的自定义小部件的代码

BodyInput(
              label: 'Name',
              readOnly: readOnly,
              initialValue: name,
              placeholder: name,
              handleChange: (value) {
                print(value);
              },
            ),

placeholder 和 initialState 都具有相同的值,但由于某种原因,我的 TextField 没有显示 initialState,而是显示了占位符。结果

这是 BodyInput 本身 *由于某种原因它不会让我复制粘贴代码所以这里是一个图像而不是我真的很抱歉麻烦,由于某种原因,当我粘贴代码时,只有第一行被复制为其余代码是普通文本

4

1 回答 1

0

结果我的widget.initialState on 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)),
    ),
  ],
);

}

如果有更好的答案,请告诉我

于 2020-12-09T15:46:00.167 回答