![](/img/trans.png)
[英]Flutter error: The argument type 'Color Function(String)' can't be assigned to the parameter type 'dynamic Function(dynamic)'
[英]Flutter(dart) error: The argument type can't be assigned to the parameter type 'dynamic Function(List<Student>?)'
在Flutter的新版本中遇到錯誤如下。
錯誤:參數類型“列表?” 無法分配給參數類型“動態函數(列表?)”。 (argument_type_not_assignable 在 [temel_widget] lib\screens\student_add.dart:14)
class StudentAdd extends StatefulWidget {
//Student addStudent = Student.withId(0, "", "", 0);
List<Student>? students;
StudentAdd(List<Student>? students) {
this.students = students;
}
@override
State<StatefulWidget> createState() {
return _StudentAddState(students); **This here error message**
}
}
class _StudentAddState extends State with StudentValidationMixin {
//Student addStudent = Student.withId(0, "", "", 0);
List<Student>? students=[];
var student = Student.withoutInfo();
var formKey = GlobalKey<FormState>();
_StudentAddState(StudentAdd(List<Student>? students)) {
this.students = students;
}
如果你檢查這個tudentAdd(List<Student>? students)
你正在調用_StudentAddState
中的StudentAdd
構造函數。
_StudentAddState(StudentAdd(List<Student>? students)) {
this.students = students;
}
你需要像
_StudentAddState(List<Student>? students) {
this.students = students;
}
您也可以避免傳遞參數,而我們可以使用widget.varableName
訪問 class 級變量。 並啟動項目我們在initState
中有 initState
class StudentAdd extends StatefulWidget {
StudentAdd({
Key? key,
required this.students,
}) : super(key: key);
List<Student>? students;
@override
State<StudentAdd> createState() => _StudentAddState();
}
class _StudentAddState extends State<StudentAdd> {
@override
void initState() {
super.initState();
///getting students also, this can be done anyplace on state class
print(widget.students?.length);
}
//....
}
檢查 state 構造函數中的參數應該是
_StudentAddState(List<Student>? students)
而且您不需要將數據從 Widget 傳遞到其 state,您可以使用widegt.data
從 State class 訪問 widget 數據
class _StudentAddState extends State<StudentAdd> with StudentValidationMixin {
List<Student>? get students = widget.students;
var student = Student.withoutInfo();
var formKey = GlobalKey<FormState>();
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.