我收到此错误"The operator '[]' isn't defined for the type 'Future<dynamic>'."有人可以帮我修复我的代码吗?飘飘/飞



我得到这两个错误时,建立一个listview

getter 'length'没有为'Future'类型定义。操作符'[]'没有为'Future'类型定义。

这里出了什么问题,是否有任何修复我的代码。

谢谢!

这是我的代码:

import 'package:cache_manager/cache_manager.dart';
import 'package:flutter/material.dart';

class messageBoard extends StatefulWidget {
messageBoard({Key key}) : super(key: key);
@override
State<messageBoard> createState() => _messageBoardState();
}
class _messageBoardState extends State<messageBoard> {
@override
Widget build(BuildContext context) {
var message = ReadCache.getStringList(key: "cahce3");
return Scaffold(
backgroundColor: Colors.white,
body: Column(
children: [
Expanded(
child: FutureBuilder(
builder: (context , snapshot) {
return ListView.builder(
itemCount: message.length,
itemBuilder:(context,index){
return Text(message[index]);
}
);
},
),
)],
),
);
}
}

Future builder接受一个Future。您可以将future分配给Futurebuilder并检查其数据。假设ReadCache。getStringList是将来你可以这样写。

FutureBuilder(
future: ReadCache.getStringList(key: "cahce3"),
builder: (context , snapshot) {
if (snapshot.hasData) {     
return ListView.builder(
itemCount: snapshot.data.length,
itemBuilder:(context,index){
return Text(snapshot.data[index]);
}
);
}
else{ 
return Text("No Data");
}
},
),

最新更新