刷新页面后,AutoCompleteTextField检索null

时间:2020-11-11 05:53:57

标签: flutter dart

我已经设置了AutoCompleteTextField,但是当我也通过发送和接收相同的输入值从一页导航到另一页时,该值不会显示在AutoCompleteTextField中。而且,当我点击建议时,我遇到了错误

getter'controller'在null上被调用。接收方:空尝试调用:控制器

代码:

class CustomRegistration extends StatefulWidget {
final String pincodeC;
CustomRegistration([this.pincodeC])
  @override
  _CustomRegistrationState createState() => _CustomRegistrationState();
}

class _CustomRegistrationState extends State<CustomRegistration> {
FocusNode pincodeFocus = new FocusNode();
TextEditingController pincode = new TextEditingController();
List<String> suggestionList = ['170010','110011','170001'];
SimpleAutoCompleteTextField textField;

  @override
  Widget build(BuildContext context) {
    
     Column body = new Column(children: [
      new ListTile(
        title: textField,)
    ]);
    body.children.addAll(added.map((item) {
      return new ListTile(title: new Text(item));
    }));

    print(textField); 
 
    return Scaffold(
     body: Builder(
        builder: (context) => SingleChildScrollView(
          child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                 AutoCompleteTextField(
                              focusNode: pincodeFocus,
                              decoration: InputDecoration(
                                border: InputBorder.none,
                                prefixIcon: Icon(Icons.home),
                                hintText: "Pincode",
                              ),
                              controller: pincode,
                              itemSubmitted: (item) {
                                setState(() {
                                  textField.controller.text = item.toString();
                                  print('item submitted' + item.toString());
                                });
                              },
                              key: key,
                              suggestions: suggestionList,
                              itemBuilder: (context, item){
                                return Container(
                                  padding: EdgeInsets.all(20.0),
                                  child: Row(
                                    children: <Widget>[
                                      Text(
                                        item,
                                        style: TextStyle(color: Colors.black),
                                      )
                                    ],
                                  ),
                                );
                              },
                              itemSorter: (a, b) {
                                return a.compareTo(b);
                              },
                              itemFilter: (item, query) {
                                return item
                                    .toLowerCase()
                                    .toString()
                                    .startsWith(query.toLowerCase());
                              },
                            ),
                          ]))));}}

在打印文本字段时,我得到 null 以及在何处初始化 widget.pincodeC

1 个答案:

答案 0 :(得分:0)

谢谢大家的帮助,我的确通过在内部版本中添加pincode.text = widget.pincodeC; 来获得结果

相关问题