Я новичок, чтобы трепетать и экспериментировать с Sateful виджетом. Дело в том, что в моем макете экрана пользовательского интерфейса у меня есть два разных виджета
- Виджет DropdownButton
- TextFormField, который содержит номер карты.
Когда я пытался обновить выбранное значение раскрывающегося списка в виджете DropdownButton, он автоматически очищает текст в TextFormField. Требуется ли сохранять текст в глобальной переменной для восстановления каждый раз, когда мы вызываем метод setState () для обновления значений?
Вот код для виджетов,
DropdownButton
new Padding(
padding: const EdgeInsets.all(15.0),
child: new Column(
children: <Widget>[
DropdownButton<String>(
value: _referPractice,
isDense: true,
hint: new Text(CONST_SELECT),
items: _stdCodesList.map((value) {
return new DropdownMenuItem<String>(
value: value.dialCode,
child: new Text("${value.code} ${value.dialCode}"),
);
}).toList(),
onChanged: (String newValue) {
setState(() {
_referPractice = newValue; // here I`m trying to update selected value.
});
},
)
],
)),
TextFormField
TextFormField(
controller: _textController,
keyboardType: TextInputType.number,
style: new TextStyle(
fontWeight: FontWeight.w200,
color: Colors.black,
fontSize: 18.0,
),
decoration: new InputDecoration(
hintText: HING_ENTER_NUMBER,
suffixIcon: CircleIconButton(
onPressed: () {
this.setState(() {
_textController.clear();
});
},
)),
maxLines: 1,
validator: (value) {
if (value.isEmpty) {
return ERROR_CARD_DETAILS;
}
},
),
Я понимаю, что Stateful виджет перестраивает виджет каждый раз, когда он вызывает setState, но как мне сохранить данные для данных формы, которые еще нигде не хранятся.
Предложения, пожалуйста! Заранее спасибо.