Я следую руководству по флаттеру ,,
, и в этом виджете, чтобы он исчез после ввода данных, я назову класс навигатора, но в этом руководстве мне придется преобразовать виджет без состояния на виджет с сохранением состояния, хотя он мне не нужен.
Как я могу использовать: Navigator.of(context).pop();
с моим виджетом без состояния без получения ошибки, что контекст не определен? - Как пройти context
для чтения навигатором
КОД:
import 'package:flutter/material.dart';
class NewTransaction extends StatelessWidget {
final titleController = TextEditingController();
final amountController = TextEditingController();
final Function addNEW;
NewTransaction(this.addNEW);
void submitData() {
if (titleController.text.isEmpty || double.parse(amountController.text) <= 0 ){
return;
}
Navigator.of().pop();
addNEW(
titleController.text,
double.parse(amountController.text),
);
}
@override
Widget build(BuildContext context) {
return Card(
elevation: 5,
child: Container(
padding: EdgeInsets.all(12),
child: Column(
crossAxisAlignment: CrossAxisAlignment.end,
children: <Widget>[
TextField(
decoration: InputDecoration(labelText: 'Title'),
controller: titleController,
onSubmitted: (_) => submitData(),
),
TextField(
decoration: InputDecoration(labelText: 'Amount'),
keyboardType: TextInputType.numberWithOptions(decimal: true),
controller: amountController,
onSubmitted: (_) => submitData(),
),
FlatButton(
child: Text('Add Transaction'),
onPressed: submitData,
)
],
),
),
);
}
}