因此,我有一个MediaPreview(to的通知屏幕,它在通知旁边显示图像)。当(on Tap)在媒体预览时,我想要将重定向到另一个页面以显示图像,出于某种原因,它给了我,method[]在null上被调用
这是我点击图片时显示Post的代码
showPost(context) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => PostScreen(
postId: postId,
userId: userId,
),
),
);
}下面是PostScreen的代码:
class PostScreen extends StatelessWidget {
final String userId;
final String postId;
PostScreen({this.postId, this.userId});
@override
Widget build(BuildContext context) {
return FutureBuilder(
future: postsRef
.document(userId)
.collection('userPosts')
.document(postId)
.get(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return circularProgress();
}
Post post = Post.fromDocument(snapshot.data);
return Center(
child: Scaffold(
appBar: header(context, appTitle: post.description),
body: ListView(
children: <Widget>[
Container(
child: post,
)
],
),
),
);
},
);
}
}发布于 2019-11-14 17:49:11
所以我在使用调试器和断点在Post post = Post.fromDocument(snapshot.data);中找到了一个解决方案,我发现postId不是在userId post (让我们称之为用户A)中找到的,所以用户E 19AE 210AE 210没有在这个E 111postIdE 212中找到,但是用户E 113BE 214/code>E 115有postE 216我一直在寻找它。因此,我将我的showPost函数更改为:
showPost(context) { Navigator.push( context, MaterialPageRoute( builder: (context) => PostScreen( postId: postId, userId: userId, ), ), ); }
至
showPost(context) { Navigator.push( context, MaterialPageRoute( builder: (context) => PostScreen( postId: postId, userId: currentUser?.id, ), ), ); }
这样,当我单击另一个用户帖子时(我得到userId以获得他的 post集合)和当我单击my (我得到my userId to get myE 228post Collection)时。
希望这能帮上忙。
https://stackoverflow.com/questions/58860709
复制相似问题