【问题标题】:flutter:: Is it possible to load statefulwidget as a second page?flutter:: 是否可以将 statefulwidget 作为第二页加载?
【发布时间】:2021-11-15 08:43:21
【问题描述】:

我有 main.dart、a.dart 和 b.dart。 当我运行 main.dart 时,a 和 b 的结果都显示在一页中。但我希望 a 和 b 的结果显示在不同的页面上。 所以我使用 MaterialPageRoute 使 a 在第一页上可见, b 在第二页上可见。 但是发生了错误。

命名参数“记录”是必需的,但没有 对应的论点。

我的猜测是a和b都是用statefulwidget写的,所以出现了错误。 对此有何建议?

a.dart 示例

class Recorder extends StatefulWidget {
  final Function save;

  const Recorder({Key? key, required this.save}) : super(key: key);
  @override
  _RecorderState createState() => _RecorderState();
}

class _RecorderState extends State<Recorder> {

b.dart 示例

class Records extends StatefulWidget {
  final List<String> records;
  const Records({
    Key? key,
    required this.records,
  }) : super(key: key);

  @override
  _RecordsState createState() => _RecordsState();
}

class _RecordsState extends State<Records> {

main.dart 示例

class HomePage extends StatefulWidget {
  final String _appTitle;

  const HomePage({Key? key, required String title})
      : assert(title != null),
        _appTitle = title,
        super(key: key);

  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {

main.dart 示例(错误)

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      floatingActionButton: FloatingActionButton(
        onPressed: (){
        },
        child:  InkWell(child: Icon(Icons.mic),onTap: (){
          Navigator.push(
              context,
              MaterialPageRoute(builder: (context) => Records());
              },),
      ),

【问题讨论】:

    标签: flutter statefulwidget materialpageroute


    【解决方案1】:

    您缺少记录的参数。您的解决方案是删除

    必需 this.records

    或者把你的Navigator.push改成这个

     MaterialPageRoute(builder: (context) => Records(['']));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-07
      • 1970-01-01
      • 1970-01-01
      • 2021-04-08
      • 2021-07-02
      • 1970-01-01
      • 2021-04-01
      相关资源
      最近更新 更多