如何将用户信息从详细信息页面传递到另一个页面?

How do I pass the user info from the detailpage unto another page?

Flutter Firestore - StreamBuilder 用户 > ListView 用户 > DetailPage 用户 > 消息用户

所以我有一个来自 Firestore 的用户集合流。

点击它会转到该用户的详细信息页面(个人资料)。但现在我还想集成向该用户发送消息的可能性。所以我需要将数据从详细信息页面传递到另一个页面。如何将用户信息从详细信息页面传递到另一个页面?

推送新页面时,通过参数将数据传递给小部件,小部件被推送,如下所示:

Navigator.of(context).push(
   MaterialPageRoute(
       builder: (context) => const NextPage("Passed data"), // We pass here the data
   ),
);

完整示例:

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: HomePage(),
    );
  }
}

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text("Home")),
      body: Center(
        child: ElevatedButton(
          child: const Text("Button"),
          onPressed: () {
            Navigator.of(context).push(
              MaterialPageRoute(
                builder: (context) => const NextPage("Passed data"), // We pass here the data
              ),
            );
          },
        ),
      ),
    );
  }
}

class NextPage extends StatelessWidget {
  final String data;
  
  const NextPage(this.data);
  
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text("Home")),
      body: Center(
        child: Text(data)
      ),
    );
  }
}

你可以运行这个例子在这个link下:https://dartpad.dev/e0d3b247da70f6080ea5917ce346c5a4

您可以参考 Whosebug ,其中一位社区成员简要解释了如何根据使用 flutter/Dart 的选择将单个 firestore 数据传递给另一个 class。