【问题标题】:How can I solve Navigator.push() error in Flutter?如何解决 Flutter 中的 Navigator.push() 错误?
【发布时间】:2022-11-03 20:55:28
【问题描述】:

有错误信息、错误代码和一些主页代码。 什么是物质??

我做了那个错误信息说要做。 但我无法解决问题。

[错误信息]

lib/create_page.dart:194:63: Error: Too few positional arguments: 1 required, 0 given.
     context, MaterialPageRoute(builder:(context) => HomePage()),
                                                             ^
 lib/home_page.dart:10:3: Context: Found this candidate, but the arguments don't match.
     HomePage(this.user);
              ^^^^^^^^

[错误代码]

Navigator.push(
  context, MaterialPageRoute(builder:(context) => HomePage()),
);

[主页]

class HomePage extends StatelessWidget {
final FirebaseUser user;

HomePage(this.user);

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    至于HomePage 类,则需要传递一个FirebaseUser 实例。如果你想让它成为可选的,你可以使用具有可为空数据类型的命名参数构造函数。

    class HomePage extends StatelessWidget {
      final FirebaseUser? user;
    
      const HomePage({super.key, this.user});
    }
    

    【讨论】:

      【解决方案2】:
      final FirebaseUser user;
      

      这里用户是必需的参数,这导致了错误, 要么你通过它,要么让它可以为空,比如

      final FirebaseUser? user;
      

      【讨论】:

        【解决方案3】:

        这是因为HomePage 小部件需要FirebaseUser 类型的参数。您需要在导航器中添加此参数

        Navigator.push(
          context, MaterialPageRoute(builder:(context) => HomePage(user)),
        );
        

        【讨论】:

          猜你喜欢
          • 2022-10-02
          • 2022-08-19
          • 2021-11-11
          • 2021-07-01
          • 2021-09-24
          • 2019-02-10
          • 1970-01-01
          • 2020-01-04
          • 2021-09-16
          相关资源
          最近更新 更多