#flutter #dart
Вопрос:
скажем, например, у меня есть пользовательский класс текстовых полей, подобный этому
class CustomTextField extends StatelessWidget {
final Function onSubmit;
CustomTextField({
required this.onSubmit,
});
@override
Widget build(BuildContext context) {
return TextField(
onSubmitted: (value) => onSubmit(value),
);
}
}
как вы можете видеть, мне нужно передать функцию, чтобы получить отправленное значение текстовой строки из текстового поля. и я могу использовать его вот так
CustomTextField (onSubmit: () {
print("something");
})
но у меня нет никаких ошибок, когда я пишу свой код таким образом. чего я хочу, так это вот этого
CustomTextField (onSubmit: (myValue) { // <--- if I don't write 'myValue' in here it will have error
print(myValue);
})
Я хочу, чтобы мой код выдавал мне ошибку, если я не напишу имя переменной (строку) в круглых скобках
как это сделать?
Ответ №1:
Вам нужно изменить тип onSubmit
с общей функции на функцию, которая принимает строковый параметр, например, так.
final Function(String value) onSubmit;
Комментарии:
1. следует также указать возврат как недействительный: