我得到这两个错误时,建立一个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");
}
},
),