将数据从可重用的小部件传递到活动。 (扑)

时间:2020-04-14 09:45:37

标签: flutter navigation

我在flutter中制作了一个可重用的小部件。 这是一个列表项,但是当我按它时,它应该导航到应用程序中的另一个屏幕。 问题是,我希望列表项的标题(widget.title)与CupertinoNavigationBar相同。 我试图像在官方文档中那样传递它,但出现类似以下错误:期望2个参数,但得到1个。 请帮助我...

这是代码:

class Elem extends StatefulWidget {
  final String imagine;
  final String titlu;
  final String subtitlu;
  final String tip;
  final String link;

  const Elem(
      {Key key, this.imagine, this.titlu, this.subtitlu, this.tip, this.link})
      : super(key: key);

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

class _StatefulStateCupertinoTwo extends State<Elem> {
  @override
  Widget build(BuildContext context) {
    return ListTile(
      leading: ClipRRect(
        child: Image.network(
          widget.imagine,
        ),
        borderRadius: BorderRadius.circular(10.0),
      ),
      title: Text(widget.titlu, style: TextStyle(color: Colors.white)),
      subtitle: Text(widget.subtitlu, style: TextStyle(color: Colors.grey)),
      trailing: Icon(
        CupertinoIcons.add_circled_solid,
        color: CupertinoColors.systemBlue,
        size: 30,
      ),
      onTap: () {
        Navigator.push(context, CupertinoPageRoute(builder: (context) => Detaile(
          widget.titlu,
        )));
      },
    );
  }
}
class Detaile extends StatelessWidget{
  final String title;
  // receive data from the FirstScreen as a parameter
  Detaile(String titlu, {Key key, @required this.title}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return CupertinoPageScaffold(
      navigationBar: const CupertinoNavigationBar(
        middle: Text(title),
      ),
      child: Text('Hello'),
        );
  },
}

此外,这是我遇到的一些错误:

位置参数过多:预期为0,但找到1。 尝试删除多余的参数。

位置参数过多:预期有2个,但发现1个。 尝试删除多余的参数。

未定义名称“ titlu”。 尝试将名称更正为已定义的名称,或定义名称。

常量创建的参数必须是常量表达式。 尝试使该参数成为有效常量,或使用“ new”调用构造函数。

对该常量表达式求值会引发异常。

0 个答案:

没有答案