【发布时间】:2021-03-10 14:53:47
【问题描述】:
请我需要流生成器小部件来返回我的消息集合中的最后一条消息(红色矩形框)。我在下面使用的返回一个空字符串必须在 Text 小部件中提供。
class MessageScreen extends StatefulWidget {
final String uid;
MessageScreen(this.uid);
@override
_MessageScreenState createState() => _MessageScreenState();
}
class _MessageScreenState extends State<MessageScreen> {
String uid;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
elevation: 0.0,
title: Center(
widthFactor: 5,
child: Text(
'Message',
style: mystyle(
20.0,
Style.Colors.titleColor,
),
),
),
),
body: LastMessageContainer(
stream:
messageCollection.orderBy('lastMessage.timestamp', descending: true).where('users', arrayContains: uid).snapshots()),
);
}
}
class LastMessageContainer extends StatelessWidget {
final stream;
LastMessageContainer({
@required this.stream,
});
@override
Widget build(BuildContext context) {
return StreamBuilder(
stream: stream,
builder: (context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.hasData) {
var docList = snapshot.data.docs;
if (docList.isNotEmpty) {
Message message = Message.fromMap(docList.last.data());
return SizedBox(
width: MediaQuery.of(context).size.width * 0.6,
child: Text(
message.message,
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: Colors.grey,
fontSize: 14,
),
),
);
}
return Text(
"No Message",
style: TextStyle(
color: Colors.grey,
fontSize: 14,
),
);
}
return Text(
"..",
style: TextStyle(
color: Colors.grey,
fontSize: 14,
),
);
},
);
}
}
```
]
当我尝试从消息集合下的最后一个消息字段中获取消息时,它返回的错误,即必须在 Text 小部件中提供空字符串发生在 Text(message.message) 中。
【问题讨论】:
-
这看起来更像是 javascript 而不是 java。请选择一种语言。 Java 与 javascript 没有关系。
-
我不明白你的评论。我需要一个小部件来从我的消息集合@NomadMaker 中的最后一个消息字段中获取数据
-
你是用什么语言来写这个javascript的?
-
Java @NomadMaker
-
我对java有很多经验,这看起来不像我知道的java。