我已经建立了一个定制列表。现在我包含一个复选框,如果我选中或取消选中,则会引发以下错误:“在构造函数中调用 setState()”
\n\nclass Lists extends StatefulWidget{ \n @override\n _List createState() => _List();\n}\n\nclass _List extends State<Lists> { \n bool checkedvalue = true;\n @override\nWidget build(BuildContext context) {\n\n return futureBuilder();\n}\n\nWidget futureBuilder(){ \n var futureBuilder = new FutureBuilder(\n future: rest.fetchPost(),\n builder: (BuildContext context, AsyncSnapshot snapshot) {\n switch (snapshot.connectionState) {\n case ConnectionState.none:\n case ConnectionState.waiting:\n return new Text('loading...');\n default:\n if (snapshot.hasError)\n return new Text('Error: ${snapshot.error}');\n else \n return listBuilder(context, snapshot); \n }\n }\n );\n\n return new Scaffold( \n body: futureBuilder,\n );\n}\n\nWidget listBuilder(BuildContext context, AsyncSnapshot snapshot) …Run Code Online (Sandbox Code Playgroud) 我需要你的帮助..我有一份清单CheckboxListTile。如果我选中或取消选中某个项目,列表将重新加载。所以我用AsyncMemoizer.
现在返回以下错误:'Future<dynamic> is not a subtype of type Future<List<Status>>'
也许您有其他想法,因为我可以用不同的方式解决列表中的问题
final AsyncMemoizer _memoizer = AsyncMemoizer();
Future<List<Status>> fetchPost(){
return _memoizer.runOnce(() async {
final response =
await http.get(URL);
if (response.statusCode == 200) {
List<Status> tmp = Status.fromJsonList(json.decode(response.body));
return tmp;
} else {
throw Exception('Failed to load post');
}
});
}
static List<Status> fromJsonList(List<dynamic> json) {
List<Status> ret = new List<Status>();
for (int i=0;i<json.length;i++){
Status itm = Status(
id: json[i]['I'],
geschlecht: json[i]['G'],
adresse: json[i]['A'],
name: json[i]['AZ'],
//Checkbox
isSelected …Run Code Online (Sandbox Code Playgroud)