我收到了這個錯誤,我不知道解決它的原因是什么。
class PasswordTextFormField extends StatelessWidget {
final Function validator;
final String name;
PasswordTextFormField({required this.name, required this.validator});
@override
Widget build(BuildContext context) {
return TextFormField(
validator: validator, // here it gives the error
decoration: InputDecoration(
border: const OutlineInputBorder(),
hintText: name,
),
);
}
}
它給出了這種錯誤:
無法將引數型別“函式”分配給引數型別“字串?函式(字串?)?'。
如果你沒有明白我說的:
截屏
謝謝你的幫助!
uj5u.com熱心網友回復:
由于驗證器可以為空,因此您必須?在回呼函式中提供
final Function? validator;
并將其用作
validator: validator!,
同樣,您傳遞的函式也應該可以為空
String? validateMyInput(){
// your code
}
uj5u.com熱心網友回復:
驗證器需要一個具有可為空字串引數和可為空字串回傳型別的函式。就像是:
String? validatingFunction(String? text) {
}
由于您沒有正確宣告驗證器變數,因此您會收到此錯誤。要解決此問題,請將變數宣告更改為:
final FormFieldValidator<String?> validator;
閱讀有關驗證器和FormFieldValidator 的資訊。
uj5u.com熱心網友回復:
這是因為 TextInputField 需要一個函式,該函式需要一個字串值作為引數并回傳 null 或字串。但是您試圖為其提供任何與其所需型別不匹配的函式。更改您的代碼如下
final String? Function(String value) validator;
final String name;
PasswordTextFormField({required this.name, required this.validator});
@override
Widget build(BuildContext context) {
return TextFormField(
validator: validator, // here it gives the error
decoration: InputDecoration(
border: const OutlineInputBorder(),
hintText: name,
),
);
}
} ````
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/387360.html
上一篇:我怎么能重新啟動這個當前的功能
